Graphics file
Store your model's 3D geometry data in the graphics.scz file. The structure of your graphics.scz file may differ for your specific CAD application, as a result, this guide does not define a strict data structure but gives guidance on how to generate it with reference to how it applies to the Revit application.
HOOPs node tree structure#
Store model elements nodes under model file nodes.
Note: An exceptions to this rule is if an element is grouped by another element or if an element is a member or component of another element.
Use the following HOOPs model tree structure:
- Models
- Model
- Model file node
- Model element 1 node
- Model element 2 node
- ...
- Model file node
- Model
Figure: HOOPs model tree structure

| Callout | Descriptions |
|---|---|
| A | Model file node |
| B | Model element nodes |
Element attributes#
Each element node has the following properties:
- Name: To construct the element node's name, concatenate the element's category name with the element's id within parentheses:
Category(element-id). For example, a wall with a Revit ID of 12345 will have the following node name: Walls(12345) - PersistentID: The element’s BIMPK id, which is the integer id you give the object in
"objects.id"inobjects.json - INV_Desc: A description of the element, which includes the element’s Category, Family, and Type data in the following format:
Category>Family:Type
For a complete example, see the following Revit wall element attributes:
{ "Name": "Walls(67890)", "PersistentID": "44", "INV_Desc": "Walls>Wall:Interior Partition Wall"}
Figure: Node element attributes

| Callout | Descriptions |
|---|---|
| A | Node element |
| B | Node element properties |
Rooms and spaces#
Visibility#
Rooms and Spaces usually have transparent geometry and are set to hidden by default. To view them in the platform viewer, set them to visible.
GenericType#
Room and space element nodes require special handling by the platform viewer. To indicate that an element is a room or space, set GenericType of the Room/Space’s node to a value of BIM_Space.
Note:
GenericTypeis a built-in attribute of a HOOPs node and its value is empty by default.
Figure: Room invisibility

| Callout | Descriptions |
|---|---|
| A | Node element |
| B | Node element properties |
Nesting related child model elements#
Nest related child model element nodes under the parent model group node in the node tree.
For more information, see the following node structure of a Revit wall element and its component related items:
Figure: Nested related child nodes

| Callout | Descriptions |
|---|---|
| A | Parent model group node |
| B | Nested related child nodes |
Example case#
In Revit, a Curtain Wall doesn’t have any geometry by itself so if you do not nest Panels and Mullions, when a user select the Curtain Wall element in the viewer, no geometry is highlighted.
Model file Hash Code#
A hash code is a property that the your application generates and adds to the first Model File node to identify the HOOPs file. For now, the value sets to ‘123456780’.
Figure: Model file hash code

| Callout | Descriptions |
|---|---|
| A | Model file |
| B | Hash code |