In Rhino and Grasshopper, a Speckle Collection corresponds to a Rhino layer.
Level > Category > Type
.
In Grasshopper, you can customize your Model Collection structure into meaningful groups of objects, so that they can be easily navigated when viewing your Speckle Model online or when loading them into other applications.
Creating Collections
Use the Create Collection node to place your Grasshopper objects into collections before publishing your model.
- Add a default sub-Collection input of an item or list of Data Objects, Geometry, or Collections. Right-click to change the name of the default sub-Collection input to your desired Collection name.
- An additional input param is created whenever you populate the previous input. Click on the
+
icon below the input param to add multiple new inputs. Empty input params will not be included in the output Collection.
If your Grasshopper params are named, you can hold down
TAB
when piping your param into a sub-Collection input to automatically use the input param’s nickname as the name of the sub-Collection (inherit name).- The Collection output contains a Collection which has a sub-Collection for every non-empty input.
Right-click
the node for additional settings:
- Set your node to automatically inherit all names when you pipe in input params.
Getting Model Objects from Collections
After loading a Speckle model, there are a few options for retrieving the objects inside the model collections depending on your workflow and the incoming Speckle model structure. Option 1: Using the Query Objects node for geometry-based workflowsThis option is recommended for geometry-based workflows using Speckle Models from Grasshopper, Rhino, and AutoCAD, which primarily contain Geometry Objects.

- Add a Collection input to retrieve a flat list of all objects inside that Collection.
- The Objects output contains all objects inside the input Collection, including objects inside sub-Collections.
- Zoom in and click on the
+
below (1) to add additional outputs that filter (1) by geometry type: Block Instances, extrusions, curves, points, and more.
This option is recommended for data-based workflows using Speckle Models from Revit, IFC, Navisworks, Civil 3D, Archicad, Tekla, and Etabs, which are highly-structured by Collections and contain Data Objects.

- Add a Collection input to see all paths of all sub-Collections inside that collection. Use the search bar with regex search to filter the displayed sub-Collections if needed.
- Click to select any path, or
SHIFT
+ click to select multiple paths.
regex tip
- The list of strings that are selected.

- Add a Collection input of the Speckle Collection you are retrieving objects from.
- Add a Paths input list of path strings to retrieve objects from. This is usually the output of the Collection Selector node.
- The Objects output contains all Speckle Objects inside the Collection input that are located at the specified sub-Collection paths.

- Add a Collection input of the Collection you want to expand.
- An output will be generated for each direct sub-Collection in the input Collection that contains any elements. Output values will be the elements inside each sub-Collection - either Objects or Collections. If the input Collection contains both Objects and sub-Collections, the Objects will be output in the
_objects
parameter.
Baking and Casting Collections
The Collection param enables baking and casting to other native Grasshopper types. Baking and casting can be done from both the param node or the output param on another component.Baking Collections
On any Collection param,right-click > select Bake
to bake Collections into the current Rhino doc as layers, with:
- full path (parent Collections will be baked as parent layers)
- name
- color
- material (if any)
- contained elements, including Objects and sub-Collections (if any)
Casting Collections
Collections can be piped into or from any of the following params, allowing you to use them interchangeably:- (Rhino 8+) Rhino model layers. Casting preserves name, color, material, and GUID.