AutoCAD – Drawings

The 3DARRAY command in AutoCAD: rows, columns, levels, and polar arrays around any axis

The 3DARRAY command in AutoCAD (3A): rows along Y, columns along X, levels along Z, or a polar array around any axis. Separate solids; one U undoes it.

  • TS. Đỗ Quốc Hoàng
  • 9 min read
The 3DARRAY command: a rectangular array along three axes and a polar array about Z with Rotate set to Yes and No Photo: Diagram by the Institute of Information Technology in Civil Engineering

Placing columns for a multi-storey frame, bolts around a flange, or piles under a footing all mean repeating one solid by a rule. In 3D that needs a third direction: levels stacked vertically, or an axis of rotation that does not lie in the XY plane. The 3darray command in AutoCAD does exactly that through a short series of questions on the command line.

This article tries 3DARRAY in AutoCAD 2027 with the acadiso.dwt template, on a 100 × 100 × 100 box at the origin. 2D arrays and the newer array types are covered in the array command. Boxes and other basic solids are covered in 3D solids in AutoCAD. For drafting taught properly, the Institute runs an AutoCAD course for construction.

Starting 3DARRAY

RouteWhere
Type 3DARRAY or alias 3ACommand line
MenuModify → 3D Operations → 3D Array
ToolbarModeling → 3D Array

Locations and the alias come from the 2027 acad.cuix and acad.pgp files. There is no ribbon button in the Drafting & Annotation workspace, so typing 3A is quickest.

The first time you run it in a session, the command line prints Initializing... 3DARRAY loaded. That shows 3DARRAY is an AutoLISP program loaded on demand. In the command log it calls _.COPY, _.ARRAY and _.UCS in turn to do its work.

The Autodesk documentation on 3DARRAY notes that its functionality has been replaced by the enhanced ARRAY command. Even so, the command still runs in 2027 and is still on the menu.

3D array in AutoCAD: rows, columns and levels

Type 3A, select the box, press Enter. AutoCAD asks for the array type, then in turn:

Enter the type of array [Rectangular/Polar] <R>:R
Enter the number of rows (---) <1>: 2
Enter the number of columns (|||) <1>: 3
Enter the number of levels (...) <1>: 4
Specify the distance between rows (---): 200
Specify the distance between columns (|||): 300
Specify the distance between levels (...): 400

The result is 24 boxes. Reading their centroids shows that each quantity follows one axis:

QuantityAxisBox centroids
Rows, 200 apartYY = 50, 250
Columns, 300 apartXX = 50, 350, 650
Levels, 400 apartZZ = 50, 450, 850, 1 250

Each distance is measured centre to centre, not as the gap between boxes: the X centroids step by exactly 300, so with 100-wide boxes the clear gap between columns is 200.

The easy mistake is expecting rows along X; they run along Y. The symbols in the prompts hint at this: (---) shows horizontal rows stacked above one another, (|||) shows vertical columns side by side.

A negative distance runs the array against the axis. With 1 row, 1 column, 3 levels and a level distance of -400, the centroids sit at Z = 50, −350, −750: the array stacks downwards below the original.

AutoCAD only asks for a distance when that quantity is greater than 1. Enter 1 row, 1 column, 3 levels and the only distance question is Specify the distance between levels (...). That matters when you script the command: the number of answers must match the questions actually asked, or the extra numbers are read by the command line as something else.

A 100 × 100 × 100 box after 3DARRAY: 2 rows along Y, 3 columns along X, 4 levels along Z, 24 separate solids. SE Isometric view, Realistic visual style Photo: AutoCAD 2027 screenshot

24 separate solids and one U

All 24 boxes are separate solids (AcDb3dSolid), with no link between them. Editing one box leaves the others as they are.

Although the command runs several commands internally, typing U once straight after 3DARRAY removes all 24 and leaves just the original box. If you typed the wrong number of levels, one U is enough.

3D polar array around any axis

Choose P at the array type question. AutoCAD asks:

Enter the number of items in the array: 6
Specify the angle to fill (+=ccw, -=cw) <360>: 360
Rotate arrayed objects? [Yes/No] <Y>: Y
Specify center point of array: 0,0,0
Specify second point on axis of rotation: 0,0,100

Unlike a 2D polar array, which needs only a centre, this one needs two points to define an axis in space. 0,0,0 and 0,0,100 give the vertical Z axis. With the box placed from X = 450 to 550, the six boxes have centroids exactly 500 from the axis on the horizontal plane Z = 50: (500, 0), (250, 433), (−250, 433), (−500, 0), (−250, −433), (250, −433).

Change the axis and the ring changes plane. Take the X axis, from 0,0,0 to 100,0,0, with four items and the box offset 500 along Y. The four centroids are (50, 500, 0), (50, 0, 500), (50, −500, 0), (50, 0, −500): the ring stands upright in the YZ plane. A 2D polar array cannot do that, for example spacing spokes around a horizontal shaft.

With a fill angle other than 360, the first and last items sit at the two ends of the arc. With 4 items and 180°, the centroids lie at 0°, 60°, 120° and 180°: the step is 180 divided by 3, not by 4.

After a polar array, the WORLDUCS variable is still 1. In other words, the user coordinate system the command uses internally has been restored, and the drawing is back in the WCS.

A 200 × 40 box after a 3DARRAY polar array: 6 items, 360°, Rotate = Yes, axis through 0,0,0 and 0,0,100. The central cylinder only marks the axis Photo: AutoCAD 2027 screenshot

Rotate arrayed objects: Yes or No

The Rotate arrayed objects? question decides whether the copies turn with the ring. A square box hides the difference, so try a long 200 × 40 box from 400,−20 to 600,20, four items about Z:

ChoiceFootprint seen from aboveBox centroids
Yes200×40, 40×200, 200×40, 40×200(500, 0), (0, 500), (−500, 0), (0, −500)
No200×40 for all four(500, 0), (−80, 620), (−700, 40), (−120, −580)

With Yes, each box turns 90° with the ring and the centroids sit evenly on a circle of radius 500. With No, the boxes keep their direction. But their centroids do not sit on that circle: their distances from the axis range from 500 to about 700. So if the copies must be evenly spaced about the axis, choose Yes, which is the default.

3DARRAY vs ARRAYRECT

The newer ARRAYRECT also has a Levels option. Run it on the same box, 2 rows × 3 columns × 4 levels with associativity on (AS = Yes), and the result is one AcDbBlockReference object, an associative array. With associativity off, ARRAYRECT also gives 24 separate solids, like 3DARRAY.

3DARRAYARRAYRECT with Levels
Result24 separate solids1 associative array (with AS = Yes)
Object typeAcDb3dSolid × 24AcDbBlockReference × 1
InteractionA fixed series of questions, done when they endAn options prompt [ASsociative/Base point/Rows/Columns/Levels/eXit]

3DARRAY suits cases where you want separate solids to edit one by one afterwards, or when scripting, because its questions are fixed. An associative array suits cases where the counts may still change. How associative arrays work is covered in the array command.

A worked example: columns for a three-storey frame

A frame has a column grid of 3 bays × 2 bays, 6 000 bays along X, 4 500 along Y, and a storey height of 3 600:

  1. Model one 300 × 300 column, 3 600 tall, at the origin with BOX.
  2. 3A, select the column, R.
  3. Rows 3 (along Y, three grid lines), columns 4 (along X, four grid lines), levels 3.
  4. Row distance 4500, column distance 6000, level distance 3600.

That gives 3 × 4 × 3 = 36 separate columns. If you got it wrong, one U brings you back to a single column. To look at the frame from several sides, use the methods in rotating the 3D view.

The 3A command in AutoCAD and LISP: a small trap

Because 3DARRAY is itself a LISP program, you cannot select objects with a LISP variable such as !h while it runs. The command line reports:

Can't reenter LISP.
*Invalid selection*

The numbers typed next are taken as answers to the selection prompt, and the command hangs at Remove objects:. Select with L (the last object drawn), with a selection window, or by clicking. If the command has hung, press Esc a few times to get out.

Three things often repeated that are not true

Often repeatedWhat holds on the 2027 release
Rows in 3DARRAY run along the X axisRows run along Y, columns along X, levels along Z
4 items over 180° gives a 45° stepThe step is 60°: the first and last items sit at the ends of the arc
With Rotate = No the solids still sit evenly on the circleThey keep their direction but move off the circle

Frequently asked questions

What does the 3darray command in AutoCAD do?

It repeats a solid in rows, columns and levels in 3D, or around any axis of rotation. The alias is 3A.

Which axes do rows, columns and levels follow?

Rows follow Y, columns X, levels Z. A negative distance runs the array against the axis.

How do I make a polar array around a horizontal axis?

Choose P, then give two points on a horizontal axis, such as 0,0,0 and 100,0,0. The ring then stands upright in the YZ plane.

How do I undo a wrong array?

Type U once straight after the command. All the copies go, leaving the original.

Is the 3DARRAY result associative like the newer ARRAY?

No. 3DARRAY gives separate solids. For an associative array with levels, use ARRAYRECT with the Levels option and associativity on.

About the author

TS. Đỗ Quốc Hoàng — Vice Director of the Institute of Information Technology in Civil Engineering, Hanoi University of Civil Engineering, and a specialist in software development for construction