Array directives create linear or 2D arrays of target primitives. They duplicate target primitives at regular intervals, creating patterns and repeated geometry. All array properties can use injection syntax to reference parameters and variables, making arrays fully parametric.
Important: The "copies" value represents additional copies to create. For example, copies=1 means 1 copy + the original = 2 total primitives. To create 5 total primitives, set copies=4.
Limit: Array directives are capped at 200 total copies across all targets. If your requested array exceeds this, the system clamps the copy counts to stay within the limit.
Linear Arrays: Create a row of copies along a single direction. Configure:
- Base Point: The starting reference point for the array
- Offset: The distance between each copy (spacing)
- Copies: The number of additional copies to create (so copies=1 means 1 copy + original = 2 total primitives, copies=2 means 2 copies + original = 3 total, etc.)
- Angle: The direction of the array in degrees (optional, defaults to 0° for horizontal arrays)
The offset, copies, and angle can all be injected with parameters or variables. For example, copies = {HoleCount} - 1 creates a number of copies based on a HoleCount parameter. Arrays are created along the direction specified by the angle, with each copy offset by the specified distance.
2D Arrays: Create a grid of copies in two directions. Enable the "2D Array" option, then configure:
- First Direction: offset (spacing), copies (number of additional copies), and angle (direction)
- Second Direction: offset2 (perpendicular spacing), copies2 (number of additional rows)
The second direction is automatically perpendicular to the first (at angle + 90°), creating a rectangular grid pattern. For example, if the first direction is at 0° (horizontal), the second direction is at 90° (vertical). All 2D array properties (offset, copies, angle, offset2, copies2) can use injection syntax.
Array Pattern: For linear arrays, copies are created along the first direction. For 2D arrays, the pattern creates rows: first, copies are created along the first direction for each row, then rows are created along the second direction. The original target primitives are included in the pattern unless "Hide Targets" is enabled.
Hide Targets: When enabled, the original target primitives are hidden, showing only the array copies. This is useful when you want the array pattern without the base geometry visible. When disabled, both the targets and copies are visible. This option is particularly useful for parametric patterns where the base geometry should not appear in the final result.
Base Point: The base point serves as the reference for the array pattern. All copies are positioned relative to this point based on the offset and angle values.
Setting Targets: Like other directives, array directives require target primitives. Click "Set Targets" in the Properties panel to select which primitives should be arrayed. If no targets are set, the directive is skipped.
Use cases: Create parametric hole patterns, grid layouts, or repeated features. For example, an array directive could create a row of mounting holes where the number of holes and spacing are controlled by block parameters. Use injection to make the hole count and spacing parametric: copies = {HoleCount} - 1 and offset = {Spacing}.
Tip: Array directives execute in the order they appear with other directives. You can move or rotate geometry first, then array the transformed result. This allows complex parametric patterns. For example, rotate a single hole 45°, then array it to create a circular pattern of rotated holes.