Latest news
Tips & GuidesRhino

Array Along a Curve in Rhino 8: Using ArrayCrv and Surfaces

Rhino 8’s ArrayCrv and ArrayCrvOnSrf commands duplicate objects along a curve or along a curve on a surface. This guide explains the count, spacing, start point and orientation options.

Repeated elements arranged at regular intervals along a curved architectural surfaceAI image
Representative image, generated with AI.Image: 3dsınıfı / FCA AI

In brief

  1. ArrayCrv duplicates objects at intervals along a curve.
  2. With ArrayCrv, you can set either the number of copies or the spacing between items.
  3. ArrayCrvOnSrf duplicates objects along a curve on a surface; the surface normal affects their orientation.
  4. Basepoint sets a reference point when an object needs to be moved onto the curve before arraying.

In Rhino 8, the ArrayCrv and ArrayCrvOnSrf commands duplicate selected objects along a path curve. These tools, described in McNeel’s Rhino 8 help documentation, offer different options for modeling tasks that involve repeated elements along a curve, arrays that follow a surface, or spacing control. The key difference is that ArrayCrv works along a general curve, while ArrayCrvOnSrf follows a curve on a surface, with the surface normal determining the copies’ orientation.

Which command is right for the job?

ArrayCrv copies an object along a selected path curve. When you start the command, first select the objects to duplicate, then specify the path curve near the end where the array should begin. You can enter either the number of copies or the distance between them. According to the command documentation, the item count must be at least 1.

ArrayCrvOnSrf duplicates and positions objects along a curve on a surface. With this method, first select the objects, then specify a start point. The documentation notes that this point is usually on the object to be duplicated. Next, select the path curve and the surface. To position objects along the curve, click on it or enter a distance from the last position.

When choosing between the commands, consider whether the array only needs to follow the curve or also needs an orientation related to the surface. In the latter case, the orientation determined by the surface normal in ArrayCrvOnSrf matters.

Count, spacing and start point with ArrayCrv

  1. Select the objects to duplicate and run the ArrayCrv command.

  2. Select the path curve near the end where you want the array to start. If the object is not on the curve and needs to be moved onto it before arraying, use the Basepoint option to set a reference position.

  3. Specify the number of items in the array or the distance between them. Items sets the number of items along the curve; Distance sets the spacing between items. When you use distance, the number of items depends on the curve’s length.

  4. Use the Orientation options to set how the objects rotate along the curve.

SettingSuggested valueEffect
ItemsRequired number of items; at least 1Sets the number of objects to duplicate along the curve.
DistanceDesired spacing between itemsDetermines the number of items based on the curve’s length.
OrientationAn option suited to the geometry and construction planeSets how copies rotate along the curve.
BasepointA suitable reference point on the objectHelps define the starting position if the object is not on the curve.

The orientation option is important for keeping repeated elements aligned with the design intent. NoRotation copies the object to different positions without applying roll, pitch or yaw. Freeform combines all three rotation movements. Roadlike applies pitch and yaw without roll; the object’s y-axis remains parallel to the selected view’s CPlane. Stairlike applies yaw only; the x- and y-axes remain parallel to the selected view’s CPlane. In addition, Roll refers to rotation around the x-axis, Pitch around the y-axis, and Yaw around the z-axis.

Arrays that follow a curve on a surface

  1. Start the ArrayCrvOnSrf command and select the objects to duplicate.

  2. Set a suitable start point on the object.

  3. Select the path curve near the point where the array should begin, then specify the surface.

  4. Click to position objects along the curve, or enter a distance from the last position.

  5. Use Divide to enter the number of objects and Multiple to set the spacing between them.

The surface normal determines orientation in this command. So, when a task requires following a curve on a surface, check not only the spacing but also the start point of the object to be duplicated and its relationship to the surface. The documentation also notes that you can type SubCrv during selection to use only part of a curve. This option is mentioned in the documentation for both curve arrays and arrays on surfaces.

Using these commands in architectural and visualization workflows

In architectural modeling, ArrayCrv can be used to set the count or spacing when repeated objects are needed along a curve. If the design requires objects to sit on a particular surface and follow a path on it, consider whether ArrayCrvOnSrf suits the workflow. These commands offer an alternative to placing repeated elements through individual copy operations; however, review the start point, path and orientation options to control the result.

In interior design and visualization projects, it helps to decide upfront whether Items or Distance is the right option for repeated geometry along a curve: one sets the count, the other the spacing. If the object does not start on the curve, consider using Basepoint; if distributing objects on a surface, account for the effect of the surface normal on orientation. The source documentation does not provide information about hardware, licensing terms or compatibility with other software, so no assumptions should be made about these topics.

Common mistakes

  • Treating Items and Distance as if they do the same thing: one sets the number of objects, the other sets the spacing between them.

  • Overlooking the start point: the path curve should be selected near the end where the array is to begin.

  • Not considering whether Basepoint is needed when the object is not on the curve.

  • In a surface array, assuming orientation is determined only by the curve: for ArrayCrvOnSrf, the surface normal determines orientation.

  • Assuming NoRotation, Roadlike and Stairlike produce the same rotation behavior; each option controls different axes and movements.

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/arraycrvonsrf.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

For architecture and visualization offices in Turkey, the practical value of ArrayCrv lies in its ability to define repeated elements by count or spacing. Especially when a design changes, repositioning the same objects along a curve can offer a more organized approach than working with individual copies. The result still depends on choosing a start point and orientation that suit the task.

ArrayCrvOnSrf provides a separate option for arrays related to a surface; remember that the surface normal determines orientation. The documentation does not specify hardware requirements, licensing or compatibility between versions. For this reason, it makes sense for offices to test the commands in their existing Rhino 8 workflows and, in particular, check orientation behavior before delivery.

Frequently asked questions

How do you duplicate objects along a curve in Rhino 8?

Run the ArrayCrv command, then select the objects and the path curve. Next, specify the number of items or the spacing between them.

What is the difference between ArrayCrv and ArrayCrvOnSrf?

ArrayCrv copies objects along a curve. ArrayCrvOnSrf works along a curve on a surface, with the surface normal affecting orientation.

How do you set the spacing between objects with ArrayCrvOnSrf in Rhino 8?

Use the `Multiple` option in the ArrayCrvOnSrf command to set the spacing between objects. Use `Divide` to enter the number of objects.

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

Related news