Class Ifc2x3::IfcBuilding

Nested Relationships

This class is a nested type of Struct Ifc2x3.

Inheritance Relationships

Base Type

Class Documentation

class Ifc2x3::IfcBuilding : public Ifc2x3::IfcSpatialStructureElement

Definition from ISO 6707-1:1989: Construction work that has the provision of shelter for its occupants or contents as one of its main purpose and is normally designed to stand permanently in one place. A building represents a structure that provides shelter for its occupants or contents and stands in one place. The building is also used to provide a basic element within the spatial structure hierarchy for the components of a building project (together with site, storey, and space). A building is (if specified) associated to a site. A building may span over several connected or disconnected buildings. Therefore building complex provides for a collection of buildings included in a site. A building can also be decomposed in (vertical) parts, where each part defines a building section. This is defined by the composition type attribute of the supertype IfcSpatialStructureElements which is interpreted as follow:

COMPLEX = building complex ELEMENT = building PARTIAL = building section

HISTORY New entity in IFC Release 1.0.

Property Set Use Definition The property sets relating to the IfcBuilding are defined by the IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. It is accessible by the inverse IsDefinedBy relationship. The following property set definitions specific to the IfcBuilding are part of this IFC release:

Pset_BuildingCommon: common property set for all types of buildings Pset_BuildingWaterStorage: specific property set for buildings to capture the water supply requirements Pset_BuildingUse: specific property set for buildings to capture the current and anticipated real estate context. Pset_BuildingUseAdjacent: specific property set for buildings to capture the use information about the adjacent buildings.

Quantity Use Definition The quantities relating to the IfcBuilding are defined by the IfcElementQuantity and attached by the IfcRelDefinesByProperties relationship. It is accessible by the inverse IsDefinedBy relationship. The following base quantities are defined and should be exchanged with the IfcElementQuantity.Name = ‘BaseQuantities’. Other quantities, being subjected to local standard of measurement, can be defined with another string value assigned to Name. In this case a valid value for MethodOfMeasurement has to be provided.

Qto_BuildingBaseQuantities: base quantities for all building occurrences.

Spatial Structure Use Definition The IfcBuilding is used to build the spatial structure of a building (that serves as the primary project breakdown and is required to be hierarchical). The spatial structure elements are linked together by using the objectified relationship IfcRelAggregates. The IfcBuilding references them by its inverse relationships:

IfcBuilding.Decomposes referencing (IfcSite || IfcBuilding) by IfcRelAggregates.RelatingObject, If it refers to another instance of IfcBuilding, the referenced IfcBuilding needs to have a different and higher CompositionType, i.e. COMPLEX (if the other IfcBuilding has ELEMENT), or ELEMENT (if the other IfcBuilding has PARTIAL). IfcBuilding.IsDecomposedBy referencing (IfcBuilding || IfcBuildingStorey) by IfcRelAggregates.RelatedObjects. If it refers to another instance ofIfcBuilding, the referenced IfcBuilding needs to have a different and lower CompositionType, i.e. ELEMENT (if the other IfcBuilding has COMPLEX), or PARTIAL (if the other IfcBuilding has ELEMENT).

If there are building elements and/or other elements directly related to the IfcBuilding(like a curtain wall spanning several stories), they are associated with the IfcBuilding by using the objectified relationship IfcRelContainedInSpatialStructure. The IfcBuilding references them by its inverse relationship:

IfcBuilding.ContainsElements referencing any subtype of IfcProduct (with the exception of other spatial structure element) by IfcRelContainedInSpatialStructure.RelatedElements.

Figure 20 shows the IfcBuilding as part of the spatial structure. It also serves as the spatial container for building and other elements. NOTE Detailed requirements on mandatory element containment and placement structure relationships are given in view definitions and implementer agreements.

Figure 20 — Building composition

Systems, such as building service or electrical distribution systems, zonal systems, or structural analysis systems, relate to IfcBuilding by using the objectified relationship IfcRelServicesBuildings.

Attribute Use Definition

Figure 21 describes the heights and elevations of the IfcBuilding. It is used to provide the height above sea level of the project height datum for this building, that is, the internal height 0.00. The height 0.00 is often used as a building internal reference height and equal to the floor finish level of the ground floor.

base elevation of building provided by: IfcBuilding.ElevationOfRefHeight, it is usually the top of construction slab base elevation of terrain at the perimeter of the building provided by: IfcBuilding.ElevationOfTerrain, it is usually the minimum elevation is sloped terrain total height of building, also referred to as ridge height (top of roof structure, e.g the ridge against terrain): provided by BaseQuantity with Name=”TotalHeight” eaves height of building (base of roof structure, e.g the eaves against terrain): provided by BaseQuantity with Name=”EavesHeight”

Figure 21 — Building elevations

Geometry Use Definitions The geometric representation of IfcBuilding is given by the IfcProductDefinitionShape and IfcLocalPlacement, allowing multiple geometric representation. Local Placement The local placement for IfcBuilding is defined in its supertype IfcProduct. It is defined by the IfcLocalPlacement, which defines the local coordinate system that is referenced by all geometric representations.

The PlacementRelTo relationship of IfcLocalPlacement shall point (if relative placement is used) to the IfcSpatialStructureElement of type IfcSite, or of type IfcBuilding (e.g. to position a building relative to a building complex, or a building section to a building). If the relative placement is not used, the absolute placement is defined within the world coordinate system.

Geometric Representations Currently, the use of a 2D ‘FootPrint’ representation of type ‘GeometricCurveSet’ and a 3D ‘Body’ representation of type ‘Brep’ is supported. Foot Print Representation The foot print representation of IfcBuilding is given by either a single 2D curve (such as IfcPolyline or IfcCompositeCurve), or by a list of 2D curves (in case of inner boundaries), if the building has an independent geometric representation. The representation identifier and type of this geometric representation of IfcBuilding is:

IfcShapeRepresentation.RepresentationIdentifier = ‘FootPrint’ IfcShapeRepresentation.RepresentationType = ‘GeometricCurveSet’

Body Representation The body (or solid model) geometric representation (if the building has an independent geometric representation) of IfcBuilding is defined using faceted B-Rep capabilities (with or without voids), based on the IfcFacetedBrep or on the IfcFacetedBrepWithVoids. The representation identifier and type of this representation of IfcBuilding is:

IfcShapeRepresentation.RepresentationIdentifier = ‘Body’ IfcShapeRepresentation.RepresentationType = ‘Brep’

Since the building shape is usually described by the exterior building elements, an independent shape representation shall only be given, if the building is exposed independently from its constituting elements.

Public Types

typedef IfcTemplatedEntityList<IfcBuilding> list

Public Functions

bool hasElevationOfRefHeight() const

Whether the optional attribute ElevationOfRefHeight is defined for this IfcBuilding.

double ElevationOfRefHeight() const

Elevation above sea level of the reference height used for all storey elevation measures, equals to height 0.0. It is usually the ground floor level.

void setElevationOfRefHeight(double v)
bool hasElevationOfTerrain() const

Whether the optional attribute ElevationOfTerrain is defined for this IfcBuilding.

double ElevationOfTerrain() const

Elevation above the minimal terrain level around the foot print of the building, given in elevation above sea level.

void setElevationOfTerrain(double v)
bool hasBuildingAddress() const

Whether the optional attribute BuildingAddress is defined for this IfcBuilding.

::Ifc2x3::IfcPostalAddress *BuildingAddress() const

Address given to the building for postal purposes.

void setBuildingAddress(::Ifc2x3::IfcPostalAddress *v)
const IfcParse::entity &declaration() const
IfcBuilding(IfcEntityInstanceData *e)
IfcBuilding(std::string v1_GlobalId, ::Ifc2x3::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc2x3::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc2x3::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_LongName, ::Ifc2x3::IfcElementCompositionEnum::Value v9_CompositionType, boost::optional<double> v10_ElevationOfRefHeight, boost::optional<double> v11_ElevationOfTerrain, ::Ifc2x3::IfcPostalAddress *v12_BuildingAddress)

Public Static Functions

const IfcParse::entity &Class()