Warning

Nightly releases are generated automatically from the latest source code and are intended for experimental purposes only. These builds may contain incomplete or untested features, bugs, or security vulnerabilities, and as such, are not for production use. Users should be aware that nightly releases may cause unexpected behavior, data loss, or system instability. Use of these releases is at the user's own risk, and it is advised to have adequate backups before testing. The software is provided as is with no guarantees or support.

Property¶

Enumeration Property

The properties a node can have. Node properties can be set and retrieved using the InstanceGraphAPI.

Using InstanceGraphAPI.setProperty will trigger a EventType.NODE_CHANGED event.

Enumeration Members

ACTIVATABLE: "activatable"

Specifies whether an AUX node can be enabled.

If this is true, the AUX node can be shown by setting the Property.ENABLED.

boolean

true
ANIMATION: "animation"

The Animation property is used to assign an animation to a node.

{ name: string } & AnimationOptions

null
APPEARANCE_URI: "appearanceURI"

The appearance URI of a node. This defines the node's visual appearance using a URN that encodes color and transparency. Appearance URNs always start with urn:X-l3d:color: followed by a format and a color specification. Supported formats include:

  • Hexadecimal colors: Specify a color using the rgb format, e.g., urn:X-l3d:color:rgb:FF0000 for red (#FF0000).
  • Hexadecimal with transparency: Use the rgba format, e.g., urn:X-l3d:color:rgba:FF000080 for 50% transparent red.
  • Transparency only: Use the a format to set only the opacity in hexadecimal format, e.g., urn:X-l3d:color:a:80 for 50% opacity.
  • Named colors: Specify standard CSS color names, e.g., urn:X-l3d:color:red.

For convenience, you can omit the urn:X-l3d:color: prefix and use the color or transparency code directly, such as "FF0000", "FF000080", or "80".

Set to null to reset the appearance.

string | null

null
ATTACHMENT: "attachment"

The attachment property is used to attach data to a node. This property contains either the attachment ID or the attachment data itself.

any

undefined
AUX_CONTENT: "auxContent"

Contains additional information for AUX nodes.

any

undefined
AUX_ENABLED: "auxEnabled"

Specifies whether an AUX node is enabled.

If set to true, all AUX nodes associated with the node become visible.

EnabledState | boolean

false
AUX_NODES: "auxNodes"

Contains the IDs of all related AUX nodes.

There are two kinds of AUX nodes. PMIs (Product and Manufacturing Information) are used to display annotations and measurements, or to show additional information about a node. The second kind are model views, which can contain PMIs as well as camera views that place the camera and the model at a specific position.

number[]

undefined
CHILDREN: "children"

Contains the IDs of all child nodes.

number[]

[]
COMPARISON_GROUP: "comparisonGroup"

Contains the ComparisonGroup of a node.

DEPTH: "depth"

Indicates the depth of a node within the hierarchy. Root nodes have a depth of 1, and each subsequent level of child nodes increases the depth by 1.

number

0
ENABLED: "enabled"

Specifies whether a node is enabled. Toggles the visibility of the according 3D geometry if a viewer is attached.

EnabledState | boolean

false
GHOSTED: "ghosted"

Property GHOSTED is experimental and may be changed in the next release.

Specifies whether a node is ghosted. Ghosted nodes become transparent and can't be interacted with, which is useful for highlighting other nodes in the scene. This can be used to localize otherwise occluded nodes in your 3D data.

This effect can be further customized by ViewerSettingStrings.GHOSTED_SCENE_OPACITY.

boolean

false
GLOBAL_TRANSFORM: "globalTransform"

Contains the global transformation matrix of a node. Global transformations are relative to the world coordinate system, which is always in meters. Hence, the translational component of the local and global transformation is set in meters. For top-level nodes, the global transformation is equal to the local transformation. For child nodes, the global transformation is calculated by multiplying the parent's global transformation with the child's local transformation.

The global transformation will be updated when manipulating the Property.LOCAL_TRANSFORM property.

[ number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number ] | Float32Array

mat4.create()
GLOBAL_VOLUME: "globalVolume"

Contains the axis-aligned global box volume of a node in meters.

Volumes are propagated throughout the node tree, meaning they will update when the Property.LOCAL_TRANSFORM property of the node itself or related nodes (parents or children) is modified.

BoxVolume

new BoxVolume()
HAS_AUX_STRUCTURE: "hasAuxStructure"

Specifies whether a node has an AUX node structure attached.

If this is true, the AUX nodes can be accessed by reading the Property.AUX_NODES.

boolean

false
HAS_VARIANTS: "hasVariants"

Specifies whether a node has variants.

The node's variants can be accessed using VariantsAPI.requestVariants.

boolean

false
INFO_STATE: "infoState"

Property INFO_STATE is deprecated and will be removed in the next release. Please use STATE instead.

LABEL: "label"

Contains the label of a node.

string

""
LOCAL_TRANSFORM: "localTransform"

Contains the local transformation matrix of a node. Notice that the world coordinate system is always in meters, hence the translational component of the local and global transformation is set in meters.

Local transformations are defined in the 3D data but can be changed via this property. Currently, you can only transform root nodes of linked parts.

Changing the local transform will update the Property.GLOBAL_TRANSFORM and Property.GLOBAL_VOLUME properties.

[ number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number ] | Float32Array

mat4.create()
LOCAL_VOLUME: "localVolume"

Contains the axis-aligned local box volume of a node in meters.

The local volume will be updated when manipulating the Property.LOCAL_TRANSFORM property.

BoxVolume

new BoxVolume()
MODEL_VIEWS: "modelViews"

Contains the IDs of all model views that are attached to a node. Model views are a certain kind of AUX node that can contain PMIs as well as camera views that place the camera and the model at a specific position.

Model views can be enabled by setting the Property.AUX_ENABLED property of the model view ID to true.

number[]

undefined
NAMES: "names"

Contains the names of a node.

string[]

[]
NODE_REPRESENTATION: "nodeRepresentation"

Contains the NodeRepresentation of a node.

NodeRepresentation.ASSEMBLY
OUTLINED: "outlined"

Property OUTLINE is experimental and may be changed in the next release.

Whether the node is outlined or not. If enabled, the outlined node's silhoutte is highlighted even if it is occluded by other geometry. This can be used to localize otherwise occluded nodes or small details in your 3D data.

This effect can be customized via ViewerSettingStrings.OUTLINE_COLOR, ViewerSettingStrings.OUTLINE_COLOR_OCCLUDED, ViewerSettingStrings.OUTLINE_INNER_RADIUS and ViewerSettingStrings.OUTLINE_OUTER_RADIUS.

boolean

false
PARENT: "parent"

Contains the ID of the parent node.

number

undefined
PICKABLE: "pickable"

Specifies whether a node is pickable. This disabled interactions on the node but still allows it to be visible.

boolean

true
REAL: "real"

The real property is used by the RealityAPI to specify whether a node will be marked as tracking target for the Reality service. The expected value is an EnabledState. Note that true will be mapped to EnabledState.Enabled and false to EnabledState.Disabled.

EnabledState | boolean

false
REAL_OCCLUDER: "realOccluder"

When set to true, the node will be used as an occluder in the hypothesis generation process.

boolean

false
RENDER_MODE: "renderMode"

Contains the RenderMode of a node. If set to anything other than RenderMode.Unset, this property overrides the ViewerSettingStrings.RENDER_MODE setting of the viewer but gets overridden by the ViewerAPI.forceRenderMode method.

RenderMode

RenderMode.Unset
RESOURCE_STATE: "resourceState"

Property RESOURCE_STATE is deprecated and will be removed in the next release. Please use STATE instead.

SELECTED: "selected"

Specifies whether a node is selected.

boolean

false
STATE: "state"

Contains the NodeState of a node.

NodeState

NodeState.CREATED
SUBTYPE: "subType"

A subtype can be set for custom nodes next to the NodeType. It can be used to further specify the type of a customly created node.

string

undefined
TYPE: "type"

Contains the NodeType of a node.

NodeType

nodeType.STRUCTURE
USER_DATA: "userData"

Can contain any type of serializable data that is attached to a node.

Serializable | undefined

undefined