Hierarchy
Rhino models are organized by File and Layer:- File - The Rhino file
- Layer - Rhino layer
- Sublayer - Nested layer (if present)
Object Types
Rhino exports three types of objects:- Geometry - Standalone geometry objects (Point, Line, Mesh, Brep, etc.)
- Instance - Block references pointing to Definition proxies
- DataObject - Objects with attached user data (less common)
Geometry Objects
Standalone geometry objects can appear directly in collections:Instance Objects
Instance objects reference Definition proxies:Properties
Geometry and Instance objects can have aproperties field dynamically attached containing:
- User Strings - Key-value pairs stored on the object
- User Dictionaries - Nested dictionary data
Proxies
Rhino models use these proxy types:RenderMaterial
Material assignments for visual representation.Color
Color assignments for objects. Referenced by objects viaapplicationId.
Group
Group proxies encode Rhino group memberships. Objects can belong to multiple groups.Definition
Definition proxies store geometry for block instances. Referenced by Instance objects viadefinitionId.
Info Fields
views
An array ofCamera objects from named perspective views in the Rhino file. These represent saved view configurations.
Example: Rhino Geometry Object
Example: Rhino Instance
Invariants and Caveats
- Standalone geometry - Geometry objects can exist directly in collections, not just in DataObject
displayValue - Instance/Definition pattern - Block instances use the Instance/Definition proxy pattern
- Properties are optional - Not all geometry objects have properties
- Layer organization - Objects are organized by Rhino’s layer structure
- User data in properties - Rhino user strings and dictionaries appear in
propertiesfield
How do I get the geometry for a block instance?
How do I get the geometry for a block instance?
Use the Instance’s
definitionId to find the corresponding Definition proxy, then access proxy.value.displayValue to get the geometry. See Traversal Recipes for a complete example.What's the difference between Color and RenderMaterial proxies?
What's the difference between Color and RenderMaterial proxies?
- Color: Simple color assignment (RGB values)
- RenderMaterial: Full material definition (color, opacity, metallic, roughness, etc.)
Related Documentation
- Object Schema - Base object structure
- Geometry Schema - Geometry storage
- Proxy Schema - How proxies work