Interface: ModularSceneElement
Complete public metadata for one product instance on a modular scene.
This type combines the persisted scene placement data with the current product identity, configuration code, physical dimensions, connections, and actions available for that specific instance. It is intended for host UIs that need a stable instance-to-product mapping without relying on the currently selected element.
Dimensions are expressed in millimeters, matching the public product
dimensions observer. insertedAt is explicitly present but may be undefined
for legacy scene data that predates insertion timestamps.
Extends
Omit<ProductElement,"configurationCode"|"connections"|"dimensions"|"insertedAt">
Properties
configurationCode
configurationCode:
string
Current configuration code for this product instance.
connections
connections:
SnapConnection[]
Connections from this instance to other scene instances.
dimensions
dimensions:
Nullable<ModelDimensions>
Physical dimensions in millimeters.
freeMove?
optionalfreeMove:boolean
Indicates whether this product can move freely in the scene.
When true, this product is not constrained by connection points
and can be positioned anywhere in the scene. Free-moving products
don't snap to other products and maintain their exact position.
Free-moving products are useful for accessories, decorative items, or standalone pieces that don't need structural connections.
Inherited from
insertedAt
insertedAt:
number|undefined
Timestamp recorded when this instance was inserted into the scene.
instanceId
instanceId:
string
Unique identifier of this product instance on the scene.
magnetizeDetails?
optionalmagnetizeDetails:MagnetizeDetails
Inherited from
ElementLocation.magnetizeDetails
placementType?
optionalplacementType:ModularPlacementType
Defines how this product was placed in the scene.
This property indicates the method used to add this product to the scene, such as direct placement, snapping, or insertion between existing products. The placement type affects how the product behaves when scene changes occur.
Different placement types may have different visual indicators or interaction behaviors in the configurator interface.
Inherited from
position?
3D position of the product in the scene.
This property defines where the product is located in 3D space, specified as X, Y, and Z coordinates. For free-moving products, this position can be directly set. For connected products, the position may be determined by their connections.
A null value indicates the product uses automatic positioning based on its connections to other products.
Inherited from
productId
productId:
string
Unique identifier for the product type.
This ID identifies the type of product this element represents (e.g., "desk", "chair", "storage-unit"). Multiple elements on the scene can share the same productId if they are instances of the same product type.
The productId is used to fetch product metadata, 3D assets, and available configuration options.
Inherited from
productName
productName:
string
Human-readable product name in the active language.
quaternion?
optionalquaternion:Nullable<Quaternion>
Precise 3D rotation of the product represented as a quaternion.
This property defines the product's orientation using quaternion representation (x, y, z, w components), which provides more accurate and gimbal-lock-free rotation compared to Euler angles (rotation property). This precision is especially important for complex multi-axis connections between products.
Quaternions ensure rotation fidelity is maintained when saving and loading configurations, particularly for products positioned using advanced snapping methods. When present, this value takes precedence over the rotation property during scene restoration.
A null value indicates the product uses either Euler-based rotation or automatic rotation derived from its connections to other products.
Inherited from
rotation?
3D rotation of the product in the scene.
This property defines how the product is rotated in 3D space, specified as rotation angles around the X, Y, and Z axes. Proper rotation ensures products face the right direction and align correctly with other components.
A null value indicates the product uses automatic rotation based on its connections to other products.
Inherited from
settings
settings:
ModularSceneElementSettings
Actions currently available for this specific instance.
slideCurrentDistance?
optionalslideCurrentDistance:number
Signed distance (in meters) of a sliding product along its drag axis, measured from the parent snap center. Positive/negative indicates direction. Only set for non-freeMove products with horizontal slide.