Skip to content
Shapemetry

@huukhanhnguyen/types / objects/block

objects/block

BlockBehaviors

BlockBehaviors = { opening?: BrepData[]; }

System attributes of a block — things that automatically happen once the block is in the scene. Presence means enabled.

opening?

optional opening?: BrepData[]

Cut volume, in the nest's OWN local space (each placement transforms it by its own transformation).


BlockData

BlockData = { objects: SceneObject[]; sourceComponent?: { args?: Record<string, string>; key: string; }; }

Mixed nest of scene objects — the payload of BlockObject.

objects

objects: SceneObject[]

sourceComponent?

optional sourceComponent?: { args?: Record<string, string>; key: string; }

Set ONLY for a nest created by placeComponent — the components[] key + args signature this nest renders.

args?

optional args?: Record<string, string>

key

key: string


BlockInstance

BlockInstance = BaseInstance & { behaviors?: BlockBehaviors; material?: string; }


BlockObject

BlockObject = BaseObject & { data: BlockData; instances: BlockInstance[]; type: "block"; }

The only kind that nests. Mixed content is a list of scene objects, never a second geometry kind beside the others.


Inherited

Inherited = { label?: string; layer?: string; material?: string; }

The placement props a BlockInstance hands down to the objects it places, when those do not carry their own.

label?

optional label?: string

layer?

optional layer?: string

material?

optional material?: string

Last updated: 📖 1 min readEdit on GitHub