Skip to main content

Import

Inheritance: extends OPElement implements IShape, IPlaceable, PlanVectorExportable

Constructor

ElementType.BUILDING
number
Colour of the mass: of every part that has no color of its own.
string
PropertySets
number
World Y of the bottom face of the first segment.
string
BuildingUse
Programme of the whole mass; a segment or storey may override it.
boolean
Draw the storey boundaries on the solids.
MassSegment[]
required
The stack, bottom-up. Each segment extrudes from the top of the one below and carries its storeys, which tile its height.

Properties

ElementType
string
Map<string, OPGeometry>
Map<string, OPGeometry>
boolean
boolean
boolean
number
Which segment the profile / height / extrudeHeight accessors address.
BuildingOptions
MassSegment[]
Read-only. The stack, cloned.
string | undefined
The saved id of the active segment: the part that the editor grips, a move, a turn and Delete act on. Setting the id of a segment of this mass makes it active; any other id changes nothing. An editor reads it when it builds its grips and sets it again when one of its gestures begins, so two editors on one mass each edit the part whose grips they drag.
number
Read-only.
number
Read-only.
number
Read-only.
string
BuildingProfile
number
Height of the ACTIVE segment (the total is quantities().height).
number
Read-only. Local Y of the bottom of the active segment: the plane of its footprint and the base of the push/pull grip, which for an upper segment is the top of the segments below it.
number
Push/pull alias for the GUIEditor — the extrude dimension is the active segment’s height.
BuildingUse
boolean
number
number
boolean
boolean
boolean

Methods

editableSchema

Self-describing editable surface.

setSegment

Patch a segment of the live mass, as an editor does during a drag.

selectPart

Make the part that drew object the active segment, so that the editor grips, a move and a turn, and Delete act on that part.

storeyElevations

Every storey with its world floor elevation, bottom-up.

quantities

Quantities of the mass; options.grade is the world Y of the site grade (default 0).

move

Translate this element by delta (world-space, meters).

rotate

Rotate this element by angleDeg around axis (default Y-up), pivoted at anchor (default the element’s own centroid).

setOPGeometry

Draw the stack.

getExportRoots

toDrawing

One region per segment plus a "&#123;n&#125;F · &#123;use&#125;" label at the top segment’s centroid.

setOPMaterial

Draw again the parts whose colour changed; each colour keeps its own shared materials.

getOPConfig

setOPConfig

Merge a partial config into the live mass.

dispose

Types

BuildingOptions

MassSegment

string
required
string
PolygonProfile
required
Footprint in the world XZ plane; holes are courtyards.
number
required
Extrusion height, metres. Always equals the sum of storeys[].height.
BuildingUse
number
Colour of this part, 0xrrggbb; absent draws it in the colour of the mass.
MassStorey[]
required
Explicit storeys, bottom-up, tiling height exactly.

BuildingUse

Programme of a mass, a segment, or a storey.

MassQuantities

number
required
Qto_BuildingBaseQuantities.FootPrintArea — net area of the ground segment.
number
required
Qto_BuildingBaseQuantities.GrossFloorArea — Σ storey plates.
Record<string, number>
required
Record<AreaKind, number>
required
number
required
Qto_BuildingBaseQuantities.GrossVolume — Σ netArea × segment height.
number
required
Qto_BuildingBaseQuantities.Height — top of the stack minus elevation.
number
required
Pset_BuildingCommon.NumberOfStoreys.
number
required
Σ (outer + hole perimeters) × height per segment — every face is vertical.
StoreyQuantity[]
required

BuildingProfile

Polygon profile for a Building — alias of PolygonProfile.

StoreyQuantity

string
required
string
required
number
required
World Y of the storey’s floor.
number
required
BuildingUse
AreaKind
required
number
required
Net plate area (footprint minus courtyards), m².
number
required
Outer footprint perimeter, m.
Last modified on October 13, 2026