Latest news
TutorialsRhino

Creating Linear and Curved Repetitions with Array Commands in Rhino 8

Rhino 8’s Array commands can duplicate objects linearly, rectangularly, radially or along a curve. This guide explains how to use spacing and orientation options in different modeling scenarios.

A modern interior visualization showing repeated elements arranged along a curved pathAI image
Representative image, generated with AI.Image: 3dsınıfı / FCA AI

In brief

  1. ArrayLinear duplicates objects in one direction, while Array creates arrays along the X, Y and Z directions of the active construction plane.
  2. ArrayPolar creates rotated copies of objects around a selected center.
  3. ArrayCrv places objects along a curve by specifying either a number of items or a spacing distance.
  4. ArrayCrvOnSrf creates an array along a curve on a surface, with orientation determined by the surface normal.

What you’ll learn in this guide

Instead of repeatedly copying the same object by hand in Rhino 8, you can use the Array commands. This guide covers when to use linear, rectangular, polar and curve-based arrays. You’ll also learn the difference between item count and spacing, how the construction plane affects directions, and how to control object orientation along a curve or across a surface.

The commands are designed for different array types. ArrayLinear is suited to elements repeated in one direction; Array works for regular layouts in two or three directions; and ArrayPolar distributes objects around a center. ArrayCrv is used to place objects along a path curve, while ArrayCrvOnSrf is used to follow a curve on a surface. These are not interchangeable tools that produce the same result: choose between them based on the input geometry and the type of distribution you need.

Requirements

This guide is based on the Array, ArrayCrv and ArrayCrvOnSrf commands described in McNeel’s Rhino 8 help documentation. You’ll need Rhino 8. The source documentation does not specify an account, subscription or additional plug-in requirement for these commands, so no such requirement should be assumed.

To try the commands, prepare an object to duplicate. For an array along a curve, you’ll also need a path curve; for an array on a surface, you’ll need a surface and a curve to use on it. When assessing the layout’s orientation, keep the active construction plane and the object’s starting position in mind. In the steps below, values such as item count and distance depend on the design requirements; no specific measurements are recommended here.

Step-by-step array methods

1. Use ArrayLinear to set spacing in one direction

Select the objects you want to arrange along a single direction and run ArrayLinear. Set the first reference point, then the second. The second point defines the direction of the array and the distance between objects. The Number option specifies the total number of objects in the result, while Preview updates the live preview as you change the settings.

This method can be useful for a one-axis layout, such as elements repeated along a wall. The key is not to treat the second reference point as just a distance marker: its direction also determines the array’s alignment. Check the preview before accepting the result. If the direction or spacing isn’t as expected, redefine the reference points.

2. Use Array for layouts along the X, Y and Z directions

For a rectangular array, select the objects and run Array. The X, Y and Z directions are interpreted relative to the active construction plane. First, enter the number of copies in each direction; the documentation specifies that these values must be 1 or greater. Then define the unit cell’s width and spacing. You can set these values by selecting two corners or by entering X, Y and Z spacing values. For the height, you can enter a value or use the width distance.

The Mode options in Array also change how the layout is defined. UnitCell sets the diagonal distance between the objects being arrayed. Fill can be used to define the distance, rectangle or three-dimensional bounding box that the array will occupy. Number specifies the total number of objects, while XNumber, YNumber and ZNumber change the counts in their respective directions. Likewise, Spacing and XSpacing, YSpacing and ZSpacing control spacing values. Watch the preview to understand the result of each option, and assess the copy counts in different directions independently.

3. Choose ArrayPolar to distribute objects around a center

For a circular or angular layout, first select the objects to duplicate, then specify the array’s center. ArrayPolar uses the Z direction of the active construction plane at the selected center as the rotation axis. Then enter the number of items, which must be at least 2, and the angle covered by the array. The copies rotate around the defined axis.

ArrayPolar’s options let you fine-tune the layout. StepAngle sets the angle between objects; Rotate controls whether the objects rotate as the array is created. ZOffset moves each copy by the specified amount along the construction plane’s Z direction; a negative value applies the offset in the opposite direction. If you need a different rotation axis, use Axis to define an axis line. Setting up the center and axis first, then checking the angle and item count, helps avoid unexpected results.

4. Use ArrayCrv to place objects along a path curve

To duplicate an object along a curve, select it, run ArrayCrv, then select the path curve near the end where the array should start. The command lets you specify either the number of items or the spacing along the curve. Items defines the number of items in the array; Distance sets the distance between them. When you specify a distance, the number of items is determined by the curve’s length.

If the object to be duplicated isn’t on the curve, the Basepoint option lets you specify a reference point and move the object to the curve before creating the array. As a result, the starting position and orientation can affect the outcome. The Orientation options control how the object rotates as it follows the curve: NoRotation changes position only; Freeform applies roll, pitch and yaw together. Roadlike uses pitch and yaw without roll, while Stairlike applies yaw only. Roll, Pitch and Yaw constrain rotation around the corresponding axis. To use only part of a curve, type SubCrv during selection.

5. Use ArrayCrvOnSrf to follow a curve on a surface

If the placement path lies on a surface, use ArrayCrvOnSrf. Select the object and specify a starting point, then select the path curve and the surface. You can define positions along the curve by clicking, or enter a distance from the last position. In this command, the surface normal determines the orientation of the objects, so the result depends on the selected surface as well as the shape of the curve.

The Divide option lets you enter the number of objects. The documentation also notes that the SubCrv option can be used to select part of a curve as input. Don’t confuse this surface-based command with ArrayCrv: the former places objects on a surface and orients them according to its normal; the latter works along a path curve. Choosing the command that fits the geometry is the first step to setting up the placement correctly.

Common mistakes

  • Overlooking the active construction plane: In a rectangular array, the X, Y and Z directions depend on the active construction plane. The default rotation axis for a polar array is also the Z direction of the construction plane at the selected point.

  • Treating item count and distance as the same setting: In ArrayCrv, you can specify either the number of items or the distance; in ArrayLinear, Number gives the total number of objects. Make sure you’re using the option you need.

  • Ignoring the starting point and the object’s position: For objects that need to be moved to the curve, you can use Basepoint. Selecting the path curve near its starting end is also part of the documented workflow.

  • Using curve and surface commands interchangeably: For placement on a surface, the surface normal determines orientation. Use ArrayCrv for duplication along a path curve alone.

  • Failing to check orientation and offset in a polar array: Rotate and ZOffset can change the result. Check the preview and rotation axis before accepting it.

Next steps

Start by trying ArrayLinear and Array with the same object to compare one-directional and multidirectional layouts. Then use ArrayPolar to compare the center, angle and rotation settings. Finally, try ArrayCrv along a path curve and ArrayCrvOnSrf along a curve on a surface to see how their orientation differs. Changing one setting at a time and checking the preview makes it easier to identify which option affects the result.

In architecture, interior design and visualization workflows, these commands can help place repeated model elements quickly, create layouts that follow a curved path, or distribute objects around a center. However, the command documentation does not provide specific information about performance, file compatibility or hardware requirements. Test performance with large arrays in your own model, and before delivery, check the position and orientation of the copies and confirm that the layout meets the model’s needs.

Sources and licensing

This guide draws on the descriptions of ArrayCrv and ArrayCrvOnSrf (K1), as well as Array, ArrayLinear and ArrayPolar (K2), in McNeel’s Rhino 8 help documentation. Both sources are official McNeel documentation, and their source records list the licensing as free.

Sources

2 sources
D
docs.mcneel.comdocs.mcneel.com/rhino/8/help/en-us/commands/arraycrv.htm
Summary
D
docs.mcneel.comdocs.mcneel.com/rhino/8/help/en-us/commands/array.htm
Summary

Source texts are not republished; short quotes are marked, everything else is our own summary and commentary.

3dsınıfı’s take
3dEditor’s assessment

Rhino 8’s Array commands let you choose the right tool for the type of distribution instead of copying repeated model elements by hand. For offices and students in Turkey, the practical benefit is being able to distinguish between layouts in a single direction, around a center and along a curve, and to work from the right starting geometry.

The sources don’t specify a separate fee, account requirement or special hardware requirement for these commands. They also don’t provide performance measurements, so it’s worth testing them in your project file, especially for large arrays. Check the surface normal, active construction plane and object starting point before delivery, as each can produce a result that differs from what you expect.

Frequently asked questions

How do you duplicate an object along a curve in Rhino 8?

With ArrayCrv, select the object and path curve, then specify either the number of items or the spacing along the curve. If the object isn’t on the curve, you can use the Basepoint option.

What’s the difference between ArrayCrv and ArrayCrvOnSrf?

ArrayCrv duplicates objects along a curve. ArrayCrvOnSrf works along a curve on a surface, with the surface normal determining the objects’ orientation.

Which command creates a circular array in Rhino?

ArrayPolar duplicates objects around a selected center. The command requires at least 2 items, and you also need to specify the angle covered by the array.

Comments and the forum are in Turkish.Join the discussion
+

Related news