Construction Schema
Alias: constr
Version: 1.0.4
Base schema for the Construction domain.
This schema contains classes that are used to model real-world entities from the construction perspective. Supported workflows:
- project breakdown into the construction work areas;
- construction modeling - splitting up design data into smaller pieces suitable for construction;
- classification - cost codes assignment to the constructible components;
- quantity takeoff - work steps quantities calculation.
Table of contents
Entity Classes
ConstructionDetailingElement (Construction Detailing Element) EntityClass 
Identifies a portion of real-world physical object that is suitable for construction.
Base Class: BisCore:SpatialLocationElement
Properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| SlopedArea | Total sloped area. | double | |
| SurfaceArea | Total surface area. | double | |
| Volume | Volume of the element. | double | |
| StationRange | Well-known location of the element defined by the station range. | struct | |
| LengthOfSlice | Length of an element produced by slice operation. | double |
Inherited properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| Model | The bis:Model that contains this bis:Element. | navigation | |
| LastMod | The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. | dateTime | |
| CodeSpec | The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeScope | The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeValue | The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | string | |
| UserLabel | An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). | string | |
| Parent | The parent bis:Element that owns this bis:Element. | navigation | |
| FederationGuid | The GUID used to federate this bis:Element across repositories. | binary | BeGuid |
| JsonProperties | A string property that users and/or applications can use to persist ad hoc JSON values. | string | Json |
| Category | The bis:SpatialCategory used to categorize this bis:GeometricElement3d | navigation | |
| InSpatialIndex | If true, this element will have an entry in the Spatial Index. | boolean | |
| Origin | The placement origin of this bis:Element. | point3d | |
| Yaw | The Yaw angle (in degrees) of the orientation of this bis:Element. | double | |
| Pitch | The Pitch angle (in degrees) of the orientation of this bis:Element. | double | |
| Roll | The Roll angle (in degrees) of the orientation of this bis:Element. | double | |
| BBoxLow | The 'low' point of the element-aligned bounding box of this bis:Element. | point3d | |
| BBoxHigh | The 'high' point of the element-aligned bounding box of this bis:Element. | point3d | |
| GeometryStream | Binary stream used to persist the geometry of this bis:Element. | binary | GeometryStream |
| TypeDefinition | Points to an instance of some specialization of TypeDefinition, which holds property values that vary per-type rather than per-instance of this Element. | navigation |
ConstructionInformationModel (Construction Information Model) EntityClass 
A container for persisting constr:ConstructionItem instances.
Base Class: BisCore:InformationModel
Inherited properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| ParentModel | The parent bis:Model contains the bis:Element that this bis:Model is sub-modeling. | navigation | |
| ModeledElement | The bis:Element that this bis:Model is sub-modeling. This bis:Model models the same Entity as the sub-Modeled bis:Element, but at a finer granularity. | navigation | |
| IsPrivate | If IsPrivate is true then this bis:Model should not appear in lists shown to the user. | boolean | |
| IsTemplate | If IsTemplate is true then this bis:Model is used as a template for creating new instances. | boolean | |
| JsonProperties | A string property that users and/or applications can use to persist ad hoc JSON values. | string | Json |
| LastMod | The last time any element in this Model was modified. | dateTime |
ConstructionInformationPartition (Construction Information Partition) Sealed EntityClass 
A constr:ConstructionInformationPartition element indicates that there is a construction modeling perspective within the overall information hierarchy. A constr:ConstructionInformationPartition is always parented to a bis:Subject and broken down by a constr:ConstructionInformationModel.
Base Class: BisCore:InformationPartitionElement
Inherited properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| Model | The bis:Model that contains this bis:Element. | navigation | |
| LastMod | The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. | dateTime | |
| CodeSpec | The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeScope | The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeValue | The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | string | |
| UserLabel | An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). | string | |
| Parent | The parent bis:Element that owns this bis:Element. | navigation | |
| FederationGuid | The GUID used to federate this bis:Element across repositories. | binary | BeGuid |
| JsonProperties | A string property that users and/or applications can use to persist ad hoc JSON values. | string | Json |
| Description | A human-readable string describing the intent behind the partition. | string |
ConstructionItem (Construction Item) Sealed EntityClass 
Defines a constructible component which may or may not be modeled in the 3D model.
Base Class: BisCore:InformationRecordElement
Inherited properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| Model | The bis:Model that contains this bis:Element. | navigation | |
| LastMod | The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. | dateTime | |
| CodeSpec | The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeScope | The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeValue | The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | string | |
| UserLabel | An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). | string | |
| Parent | The parent bis:Element that owns this bis:Element. | navigation | |
| FederationGuid | The GUID used to federate this bis:Element across repositories. | binary | BeGuid |
| JsonProperties | A string property that users and/or applications can use to persist ad hoc JSON values. | string | Json |
ConstructionItem defines a constructible component which may or may not be modeled in the 3D model.
Often design models lack details and aren't mature enough to take off accurate quantities for a construction project. But these non-modeled elements still need to be taken into account for cost estimation and work planning later. Examples of such non-modeled elements: manholes, traffic signs…
When a constructible component is modeled in the 3D model, ConstructionItem refers to one or multiple (i.e. prefabricated component which is installed as a whole) geometric elements.
ConstructionQuantity (Construction Quantity) Sealed EntityClass 
The aspect used to store construction quantity data for constr:ConstructionItem elements.
Base Class: BisCore:ElementMultiAspect
Properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| CostCodeId | The Id of the Cost Code in Construction QTO service. | string | |
| WorkStepCode | Work Step Code for which the value is calculated. | string | |
| Quantity | Calculated quantity value. | double | |
| QuantityUnitName | The fully qualified unit name (if it exists) used to persist the quantity value. | string | |
| QuantityUnitLabel | The unit display label to use when showing the quantity value. | string | |
| JsonProperties | A string property that users and/or applications can use to persist ad hoc JSON values. | string | Json |
Inherited properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| Element | The bis:Element that owns this bis:ElementMultiAspect. | navigation |
ConstructionWorkArea (Construction Work Area) EntityClass 
Represents geographically identifiable area which encompasses all disciplines that will execute work within that area.
Base Class: BisCore:SpatialLocationElement
Inherited properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| Model | The bis:Model that contains this bis:Element. | navigation | |
| LastMod | The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. | dateTime | |
| CodeSpec | The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeScope | The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeValue | The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | string | |
| UserLabel | An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). | string | |
| Parent | The parent bis:Element that owns this bis:Element. | navigation | |
| FederationGuid | The GUID used to federate this bis:Element across repositories. | binary | BeGuid |
| JsonProperties | A string property that users and/or applications can use to persist ad hoc JSON values. | string | Json |
| Category | The bis:SpatialCategory used to categorize this bis:GeometricElement3d | navigation | |
| InSpatialIndex | If true, this element will have an entry in the Spatial Index. | boolean | |
| Origin | The placement origin of this bis:Element. | point3d | |
| Yaw | The Yaw angle (in degrees) of the orientation of this bis:Element. | double | |
| Pitch | The Pitch angle (in degrees) of the orientation of this bis:Element. | double | |
| Roll | The Roll angle (in degrees) of the orientation of this bis:Element. | double | |
| BBoxLow | The 'low' point of the element-aligned bounding box of this bis:Element. | point3d | |
| BBoxHigh | The 'high' point of the element-aligned bounding box of this bis:Element. | point3d | |
| GeometryStream | Binary stream used to persist the geometry of this bis:Element. | binary | GeometryStream |
| TypeDefinition | Points to an instance of some specialization of TypeDefinition, which holds property values that vary per-type rather than per-instance of this Element. | navigation |
CostCode (Cost Code) Sealed EntityClass 
The aspect used to store Cost Code assignments to constr:ConstructionItem elements.
Base Class: BisCore:ElementMultiAspect
Properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| CodeId | The Id of the Cost Code in Construction QTO service. | string |
Inherited properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| Element | The bis:Element that owns this bis:ElementMultiAspect. | navigation |
GenericConstructionObject (Construction Object) Sealed EntityClass 
Represents a generic object used during construction
Base Class: BisCore:PhysicalElement
Inherited properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| Model | The bis:Model that contains this bis:Element. | navigation | |
| LastMod | The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. | dateTime | |
| CodeSpec | The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeScope | The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeValue | The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | string | |
| UserLabel | An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). | string | |
| Parent | The parent bis:Element that owns this bis:Element. | navigation | |
| FederationGuid | The GUID used to federate this bis:Element across repositories. | binary | BeGuid |
| JsonProperties | A string property that users and/or applications can use to persist ad hoc JSON values. | string | Json |
| Category | The bis:SpatialCategory used to categorize this bis:GeometricElement3d | navigation | |
| InSpatialIndex | If true, this element will have an entry in the Spatial Index. | boolean | |
| Origin | The placement origin of this bis:Element. | point3d | |
| Yaw | The Yaw angle (in degrees) of the orientation of this bis:Element. | double | |
| Pitch | The Pitch angle (in degrees) of the orientation of this bis:Element. | double | |
| Roll | The Roll angle (in degrees) of the orientation of this bis:Element. | double | |
| BBoxLow | The 'low' point of the element-aligned bounding box of this bis:Element. | point3d | |
| BBoxHigh | The 'high' point of the element-aligned bounding box of this bis:Element. | point3d | |
| GeometryStream | Binary stream used to persist the geometry of this bis:Element. | binary | GeometryStream |
| TypeDefinition | Points to an instance of some specialization of TypeDefinition, which holds property values that vary per-type rather than per-instance of this Element. | navigation | |
| PhysicalMaterial | Indicates the bis:PhysicalMaterial of which the bis:PhysicalElement is made. | navigation |
WorkAreaDetailingElement (Work Area Detailing Element) EntityClass 
Identifies a portion of real-world physical object that got split because it crossed construction work area boundary.
Base Class: Construction:ConstructionDetailingElement
Inherited properties
| Name | Description | Type | Extended Type |
|---|---|---|---|
| Model | The bis:Model that contains this bis:Element. | navigation | |
| LastMod | The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. | dateTime | |
| CodeSpec | The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeScope | The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | navigation | |
| CodeValue | The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. | string | |
| UserLabel | An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). | string | |
| Parent | The parent bis:Element that owns this bis:Element. | navigation | |
| FederationGuid | The GUID used to federate this bis:Element across repositories. | binary | BeGuid |
| JsonProperties | A string property that users and/or applications can use to persist ad hoc JSON values. | string | Json |
| Category | The bis:SpatialCategory used to categorize this bis:GeometricElement3d | navigation | |
| InSpatialIndex | If true, this element will have an entry in the Spatial Index. | boolean | |
| Origin | The placement origin of this bis:Element. | point3d | |
| Yaw | The Yaw angle (in degrees) of the orientation of this bis:Element. | double | |
| Pitch | The Pitch angle (in degrees) of the orientation of this bis:Element. | double | |
| Roll | The Roll angle (in degrees) of the orientation of this bis:Element. | double | |
| BBoxLow | The 'low' point of the element-aligned bounding box of this bis:Element. | point3d | |
| BBoxHigh | The 'high' point of the element-aligned bounding box of this bis:Element. | point3d | |
| GeometryStream | Binary stream used to persist the geometry of this bis:Element. | binary | GeometryStream |
| TypeDefinition | Points to an instance of some specialization of TypeDefinition, which holds property values that vary per-type rather than per-instance of this Element. | navigation | |
| SlopedArea | Total sloped area. | double | |
| SurfaceArea | Total surface area. | double | |
| Volume | Volume of the element. | double | |
| StationRange | Well-known location of the element defined by the station range. | struct | |
| LengthOfSlice | Length of an element produced by slice operation. | double |
StationRange (Station Range) StructClass 
Struct to define a station range.
Properties
| Name | Description | Label | Category | Read Only | Priority |
|---|---|---|---|---|---|
| StartStation | Station start point. | Start Station | false | 0 | |
| EndStation | Station end point. | End Station | false | 0 |
Relationship Classes
ConstructionDetailingElementSplitsGeometricElement3d Sealed RelationshipClass 
Relationship enabling splitup of bis:GeometricElement3d elements into the smaller pieces.
Base Class: BisCore:ElementRefersToElements
Strength: Referencing
Strength Direction: Forward
Used to relate ConstructionDetailingElement instances to the source geometry element. Even though the source geometry can be any element of a class bis:GeometricElement3d, the application layer will control what elements are eligible for splitting. For instance, it doesn't make any sense to split geometric elements like bis:TextAnnotation3d and similar.
In the case (see Picture 8) when design element ("P-1") crosses construction work area boundaries and one of its portions ("Portion X", modeled as WorkAreaDetailingElement) is split further into smaller pieces suitable for construction ("Portion X1" and "Portion X2, modeled as ConstructionDetailingElement) in addition to the relationship between ConstructionDetailingElement and WorkAreaDetailingElement a relationship between ConstructionDetailingElement and "original" design element is created (see Picture 7). Conceptually these ConstructionDetailingElement instances each represent a portion of the original design element, the difference is the way in which these portions were created.

Picture 7. Relationships between design element and its sliced portions

*Picture 8. Sample of splitting a design element for multiple purposes
Source
Target
ConstructionItemConstructsGeometricElement3d Sealed RelationshipClass 
Relates constr:ConstructionItem to the real world entities (or their split up pieces modeled as constr:ConstructionDetailingElement elements) it constructs.
Base Class: BisCore:ElementRefersToElements
Strength: Referencing
Strength Direction: Forward
Source
Target
ConstructionItemOwnsConstuctionQuantities Sealed RelationshipClass 
Defines aspect's ownership.
Base Class: BisCore:ElementOwnsMultiAspects
Strength: Embedding
Strength Direction: Forward
Source
Target
ConstructionItemOwnsCostCodes Sealed RelationshipClass 
Defines aspect's ownership.
Base Class: BisCore:ElementOwnsMultiAspects
Strength: Embedding
Strength Direction: Forward
Source
Target
ElementBelongsToConstructionWorkArea Sealed RelationshipClass 
Relates a bis:Element to the constr:ConstructionWorkArea that it belongs to.
Base Class: BisCore:ElementRefersToElements
Strength: Referencing
Strength Direction: Forward
Source
Target
Kind Of Quantities
AREA (Area) KindOfQuantity 
Relative Error: 0.0001
Persistence Unit: SQ_M
Presentation Formats
- DefaultRealU(2) [ SQ_M ]
- DefaultRealU(2) [ SQ_FT ]
- DefaultRealU(2) [ SQ_US_SURVEY_FT ]
LENGTH (Length) KindOfQuantity 
Relative Error: 0.0001
Persistence Unit: M
Presentation Formats
- DefaultRealU(2) [ M ]
- DefaultRealU(2) [ FT ]
- DefaultRealU(2) [ US_SURVEY_FT ]
STATION (Station) KindOfQuantity 
Relative Error: 0.0001
Persistence Unit: M
Presentation Formats
- StationZ_1000_3 [ M ]
- StationZ_100_2 [ FT ]
- DefaultRealU(2) [ M ]
- DefaultRealU(2) [ FT ]
- DefaultRealU(2) [ US_SURVEY_FT ]
VOLUME (Volume) KindOfQuantity 
Relative Error: 0.0001
Persistence Unit: CUB_M
Presentation Formats
- DefaultRealU(2) [ CUB_M ]
- DefaultRealU(2) [ CUB_FT ]
- DefaultRealU(2) [ CUB_US_SURVEY_FT ]
Last Updated: 28 February, 2023