SpatialComposition Schema

Alias: spcomp

Version: 1.0.1

Classes for defining the Spatial Structure Hierarchy of a project or asset.

This schema contains classes for modeling the Spatial Structure of infrastructure. BIS generally follows IFC's "spatial structure" concepts described by IfcSpatialStructureElement

We aim for a 1:1 bi-directional instance mapping (not class mapping!) with IFC. Round-trip transformations may result in changes that provide an equivalent, but not identical IFC model.

The hierarchy of SpatialStructureElements is built using the SpatialStructureElementAggregatesElements relationship, similar to IfcRelAggregates. The "source" Element of the relationship is an "Aggregator" that aggregates parts that are essentially a different representation of the aggregator, but at a finer granularity.

A Spatial Structure can define as many levels of hierarchy as needed.

The hierarchy can be thought of as a spatially-oriented "breakdown structure" used to organize bis:PhysicalElementss (and other bis:SpatialElements) in named spatial "buckets" (the SpatialStructureElements). The mix-in class ISpatialOrganizer mixed-in by SpatialStructureElement expresses its role in forming a breakdown structure. The SpatialOrganizerHoldsSpatialElements relationship assigns the bis:SpatialElements into those "buckets".

Sometimes there are bis:SpatialElements that (for various reasons) need to be associated with a "bucket" in the Spatial Structure, though they are "held" by some other "bucket". The SpatialOrganizerReferencesSpatialElements allows these secondary associations to be made, although the precise meaning of the association is up to the author of the data.

SpatialOrganizer

The SpatialComposition schema also defines abstract base classes for standard discipline-agnostic spatial structure concepts. These classes are Region, Site, Facility, FacilityPart, and Space.

SpatialStructureElements

All but Region map to the like-named concepts in IFC. Region was added to better represent Cities and other geographic concepts. As bis:SpatialLocationElements, these classes represent the "spatial location perspective" on physical entities of region, site, facility, etc. To use a facility as an example, a spcomp:Facility is not directly modeling the physicality of a facility, but only the spatial volume that it occupies. There could theoretically be a corresponding physical:Facility related to the spcomp:Facility, but (in practice), we find that applications tend not to create a single physical:Facility element to represent the facility as a whole, but only physically model it at a finer granularity. The spatial structure is used to structure the physical elements in the absence of an explicit physical structure. The spatial structure organizes elements in the physical perspective through the "holds" and "references" relationships.

Generally, the levels of a Spatial Structure will follow the order: Region, Site, Facility, FacilityPart, Space, but there are no ironclad restrictions on what can aggregate what. There may be a small Building located in a FacilityPart of a Bridge. A Space may belong to a Site. Discipline-specific "spatial breakdown rules" may be defined in the future, but are unlikely to be defined in the schema, since they may be project-specific.

Zones are not part of the primary spatial structure, but they are organized by it. Zones mix-in ISpatialOrganizer and thus can serve as a way of organizing bis:SpatialElements along some other "dimension" (indicated by their ZoneType).

Zones

BIS does not have a direct equivalent of IFC's controversial "CompositionType" attribute, which indicates that a given instance of IfcSpatialStructureElement represents a 'complex', an 'element' (a discrete individual), or a "part" (a portion of) for a given entity. BIS allows nesting of Regions within Regions, Sites within Sites, Facilities within Facilities, etc. to cover use-cases like a "building complex" or a "sub-building".

Table of contents

Entity Classes

CompositeElement Abstract EntityClass Deprecated

DEPRECATED: A spatial element that may be Composite of other CompositeElements

Base Class: BisCore:SpatialLocationElement

Deprecated.

Instead, use the SpatialStructureElement class that is a subclass of this class for backwards compatibility.

Properties

Name Description Type Extended Type
ComposingElement The aggregator of this element within the Spatial Structure navigation
FootprintArea The area that this Element projects onto its base plane. 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

Facility Abstract EntityClass

A volume occupied by a built facility, such as a building, bridge, road, factory/plant, railway, tunnel, etc.

Base Class: SpatialComposition:SpatialStructureElement

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
ComposingElement The aggregator of this element within the Spatial Structure navigation
FootprintArea The area that this Element projects onto its base plane. double
Description A human-readable description of this Spatial Structure Element string

Equivalent to IfcFacility.

See FacilityType.

FacilityPart (Facility Part) Abstract EntityClass

A volume that breaks a Facility down into major parts that are larger than Spaces. Its meaning varies widely depending on the kind of Facility, but for Buildings it is a Storey.

Base Class: SpatialComposition:SpatialStructureElement

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
ComposingElement The aggregator of this element within the Spatial Structure navigation
FootprintArea The area that this Element projects onto its base plane. double
Description A human-readable description of this Spatial Structure Element string

FacilityPartType (Facility Part Type) Abstract EntityClass

Further specializes a particular subclass of a FacilityPart by associating a custom Type that can be defined by users.

Base Class: SpatialComposition:SpatialStructureElementType

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
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean
Recipe navigation
Description A human-readable description of this type. string

FacilityType (Facility Type) Abstract EntityClass

Further specializes a particular subclass of a Facility by associating a custom Type that can be defined by users.

Base Class: SpatialComposition:SpatialStructureElementType

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
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean
Recipe navigation
Description A human-readable description of this type. string

Region Abstract EntityClass

A geographic region in which a Site or smaller Region is situated. Their geometry is typically given as a 2D boundary, but may be given as a 3D volume.

Base Class: SpatialComposition:SpatialStructureElement

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
ComposingElement The aggregator of this element within the Spatial Structure navigation
FootprintArea The area that this Element projects onto its base plane. double
Description A human-readable description of this Spatial Structure Element string

Has no direct equivalent in IFC, but can be represented as a large IfcSite.

Anticipated to use RegionType to distinguish highly variable types of Regions, e.g. city, district, municipality, county, state, Land, provence, country, etc.

RegionType (Region Type) Abstract EntityClass

Further specializes a particular subclass of a Region by associating a custom Type that can be defined by users.

Base Class: SpatialComposition:SpatialStructureElementType

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
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean
Recipe navigation
Description A human-readable description of this type. string

Site Abstract EntityClass

The spatial location of a geographic site on which a Facility is situated. Its geometry may be given at least as a point, but more typically by a 2D boundary or a 3D volume.

Base Class: SpatialComposition:SpatialStructureElement

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
ComposingElement The aggregator of this element within the Spatial Structure navigation
FootprintArea The area that this Element projects onto its base plane. double
Description A human-readable description of this Spatial Structure Element string

Equivalent to IfcSite.

See SiteType.

SiteType (Site Type) Abstract EntityClass

Further specializes a particular subclass of a Site by associating a custom Type that can be defined by users.

Base Class: SpatialComposition:SpatialStructureElementType

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
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean
Recipe navigation
Description A human-readable description of this type. string

Space Abstract EntityClass

A volume bounded either physically or virtually that provides for some function within a FacilityPart, Facility, or Site. Specific meanings vary depending on the kind of Facility, but Spaces tend to represent Rooms or important functional portions of Rooms within a Storey.

Base Class: SpatialComposition:SpatialStructureElement

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
ComposingElement The aggregator of this element within the Spatial Structure navigation
FootprintArea The area that this Element projects onto its base plane. double
Description A human-readable description of this Spatial Structure Element string

Equivalent to IfcSpace.

See SpaceType.

SpaceType (Space Type) Abstract EntityClass

Further specializes a particular subclass of a Space by associating a custom Type that can be defined by users.

Base Class: SpatialComposition:SpatialStructureElementType

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
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean
Recipe navigation
Description A human-readable description of this type. string

SpatialStructureElement (Spatial Structure Element) Abstract EntityClass

An Element used to form a spatial breakdown structure. As an ISpatialOrganizer, it may explicitly 'hold' or 'reference' SpatialElements.

Base Class: SpatialComposition:CompositeElement

Equivalent to IfcSpatialStructureElement.

See Schema Overview for more information.

Properties

Name Description Type Extended Type
Description A human-readable description of this Spatial Structure Element string
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
ComposingElement The aggregator of this element within the Spatial Structure navigation
FootprintArea The area that this Element projects onto its base plane. double

SpatialStructureElementType (Spatial Structure Element Type) Abstract EntityClass

Further specializes a particular subclass of a Spatial Structure Element by associating a custom Type that can be defined by users.

Base Class: BisCore:SpatialLocationType

These types allow projects in different localities to define the types of Spatial Structure Elements that are relevant to them.

Properties

Name Description Type Extended Type
Description A human-readable description of this type. string
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
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean
Recipe navigation

Zone Abstract EntityClass

Defines a region of space associated with a specific purpose. As an ISpatialOrganizer, it may explicitly 'hold' or 'reference' SpatialElements.

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

ZoneType (Zone Type) Abstract EntityClass

Further specializes a particular subclass of a Zone by associating a custom Type that can be defined by users.

Base Class: BisCore:SpatialLocationType

Used with Zone to define a criteria to use for organizing bis:SpatialElements that is "orthogonal" to the primary spatial breakdown structure.

For example, Zones of ZoneType "Tenancy" carve up the space according to which tenant has leased which area.

Properties

Name Description Type Extended Type
Description A human-readable description of this Zone Type. string
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
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean
Recipe navigation

Mixins

ICompositeBoundary Abstract Mixin Deprecated

DEPRECATED: An optional interface that indicates that the CompositeElement is delimited by a curve

Applies To: CompositeElement

Deprecated.

Mixin used to indicate that the element is of Boundary type which is most commonly a set of curved geometry. Often the original data is in the form of points on the map, a metes and bounds string, or similar.

ICompositeBoundary is a mixin class and does not have a mapping to or from IFC.

ICompositeVolume Abstract Mixin Deprecated

DEPRECATED: An optional interface that indicates that the CompositeElement is delimited by a volume

Applies To: CompositeElement

Deprecated.

Mixin used to indicate that the element is of volumetric type which is most commonly an extrusion geometry.

ICompositeVolume is a mixin class and does not have a mapping to or from IFC.

ISpatialOrganizer (Spatial Organizer) Abstract Mixin

An bis:SpatialLocation that organizes bis:SpatialElements using 'SpatialOrganizerHoldsSpatialElements' and 'SpatialOrganizerReferencesSpatialElements'

Applies To: SpatialLocationElement

The organization could be according to any "criteria" or "dimension".

Currently only used by SpatialStructureElement and Zone, ISpatialOrganizer is the "source" end of holds and references relationships for organizing bis:SpatialElements.

See Schema Overview for more context.

Relationship Classes

CompositeComposesSubComposites RelationshipClass Deprecated

DEPRECATED

Strength: Embedding

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: aggregates

Multiplicity: (0..1)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is aggregated by

Multiplicity: (0..*)

Constraint Classes:

CompositeOverlapsSpatialElements RelationshipClass Deprecated

DEPRECATED: A relationship that indicates an element is at least partially contained within the CompositeElement

Base Class: BisCore:ElementRefersToElements

Strength: Referencing

Strength Direction: Forward

Deprecated.

Use the SpatialOrganizerHoldsSpatialElements or SpatialOrganizerReferencesSpatialElements relationships instead.

Source

Is Polymorphic: true

Role Label: overlaps

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is overlapped by

Multiplicity: (0..*)

Constraint Classes:

FacilityIsOfType (Facility Is Of Facility Type) RelationshipClass

Relates a Facility to its Type definition

Base Class: SpatialComposition:SpatialStructureElementIsOfType

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: is of type

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is type of

Multiplicity: (0..1)

Constraint Classes:

FacilityPartIsOfType (FacilityPart Is Of FacilityPart Type) RelationshipClass

Relates a FacilityPart to its Type definition

Base Class: SpatialComposition:SpatialStructureElementIsOfType

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: is of type

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is type of

Multiplicity: (0..1)

Constraint Classes:

RegionIsOfType (Region Is Of Region Type) RelationshipClass

Relates a Region to its Type definition

Base Class: SpatialComposition:SpatialStructureElementIsOfType

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: is of type

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is type of

Multiplicity: (0..1)

Constraint Classes:

SiteIsOfType (Site Is Of Site Type) RelationshipClass

Relates a Site to its Type definition

Base Class: SpatialComposition:SpatialStructureElementIsOfType

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: is of type

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is type of

Multiplicity: (0..1)

Constraint Classes:

SpaceIsOfType (Space Is Of Space Type) RelationshipClass

Relates a Space to its Type definition

Base Class: SpatialComposition:SpatialStructureElementIsOfType

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: is of type

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is type of

Multiplicity: (0..1)

Constraint Classes:

SpatialOrganizerHoldsSpatialElements (Spatial Organizer Holds Spatial Elements) RelationshipClass

Organizes bis:SpatialElements such that each bis:SpatialElement is 'held' by zero or one 'organizer'.

Base Class: BisCore:ElementRefersToElements

Strength: Referencing

Strength Direction: Forward

The "holds" relationship is used to organize bis:SpatialElements into strict categories, such that a given bis:SpatialElement is only "held" by no more than one "organizer".

The scope of the "organization" (the scope within which the one-SpatialElement-per-Organizer rule can be checked) will vary depending on the class mixing-in ISpatialOrganizer.

As used by SpatialStructureElement and Zone, SpatialOrganizerHoldsSpatialElements is equivalent to IfcRelContainedInSpatialStructure (navigated in reverse).

In that context, in both IFC and BIS, "holds" does not mean geometric spatial containment, though bis:SpatialElements that are spatially contained within a given "Spatial Structure Element" are likely to be "held" by that "Spatial Structure Element" unless they have been assigned (for logical reasons) to some other "Spatial Structure Element" that is deeper in the hierarchy. For example, an ElevatorShaft might be spatially contained only by the entire Building, but assigned to be "held" by the "Basement" Storey. Generally, if a bis:SpatialElement is completely contained within a Space, it will be "held" by that Space, but Elements outside of the Space (like the "outdoor" half of a split-system Air Conditioner) for a Space might also be "held" by that Space.

See Schema Overview for more context.

Source

Is Polymorphic: true

Role Label: holds

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is held by

Multiplicity: (0..*)

Constraint Classes:

SpatialOrganizerReferencesSpatialElements (Spatial Organizer References Spatial Elements) RelationshipClass

Organizes bis:SpatialElements such that each bis:SpatialElement can be 'referenced' by zero or more 'organizers'.

Base Class: BisCore:ElementRefersToElements

Strength: Referencing

Strength Direction: Forward

The "references" relationship is used by "organizers" that wish to organize bis:SpatialElements loosely, such that a given bis:SpatialElement can be "referenced" by more than one "organizer".

As used by SpatialStructureElement and Zone, SpatialOrganizerReferencesSpatialElements is equivalent to IfcRelReferencedInSpatialStructure (navigated in reverse.)

In that context, in both IFC and BIS, the precise meaning of the association is up to the author of the data. It may or may not correlate with geometric spatial intersection.

For example, an ElevatorShaft Element may be "referenced by" all of the Storeys that it serves, even though it may not be referenced by a floor that it intersects but does not serve.

See Schema Overview for more context.

Source

Is Polymorphic: true

Role Label: references

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is referenced by

Multiplicity: (0..*)

Constraint Classes:

SpatialStructureElementAggregatesElements (Spatial Structure Element Aggregates Spatial Structure Elements) RelationshipClass

Forms the Spatial Structure. The volumes of the aggregated Elements should not overlap and should generally add up to the volume of the aggregator (the aggregating Element) and lie spatially within the aggregator.

Base Class: SpatialComposition:CompositeComposesSubComposites

Strength: Embedding

Strength Direction: Forward

Equivalent to IfcRelAggregates.

Forms a strict hierarchy (A Spatial Structure Element can only be aggregated by a single 'aggregator')

See Schema Overview for more information.

Source

Is Polymorphic: true

Role Label: aggregates

Multiplicity: (0..1)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is aggregated by

Multiplicity: (0..*)

Constraint Classes:

SpatialStructureElementIsOfType (Spatial Structure Element Is Of Spatial Structure Element Type) RelationshipClass

Relates a Spatial Structure Element to its Type definition

Base Class: BisCore:SpatialLocationIsOfType

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: is of type

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is type of

Multiplicity: (0..1)

Constraint Classes:

ZoneIsOfType (Zone Is Of Zone Type) RelationshipClass

Relates a Zone to its Type definition

Base Class: BisCore:SpatialLocationIsOfType

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: is of type

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is type of

Multiplicity: (0..1)

Constraint Classes:

Last Updated: 13 February, 2024