Skip to main content

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

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?

optional freeMove: 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

ProductElement.freeMove


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?

optional magnetizeDetails: MagnetizeDetails

Inherited from

ElementLocation.magnetizeDetails


placementType?

optional placementType: 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

ProductElement.placementType


position?

optional position: Nullable<Vector3>

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

ElementLocation.position


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

ProductElement.productId


productName

productName: string

Human-readable product name in the active language.


quaternion?

optional quaternion: 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

ElementLocation.quaternion


rotation?

optional rotation: Nullable<Vector3>

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

ElementLocation.rotation


settings

settings: ModularSceneElementSettings

Actions currently available for this specific instance.


slideCurrentDistance?

optional slideCurrentDistance: 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.

Inherited from

ElementLocation.slideCurrentDistance