| IFC Guide |
| Kapitola 03: | PROJECT CONTAINER ELEMENT AND BASE SETTINGS | html | pdf orig |
| Kapitola 04: | SPATIAL STRUCTURE AND SPACE ELEMENTS | html | pdf orig |
| Kapitola 05: | BUILDING ELEMENTS | html | pdf orig |
| Kapitola 06: | BUILDING SERVICES ELEMENTS AND RELATED CONCEPTS | html | pdf orig |
| Kapitola 09: | SHAPE REPRESENTATION OF ELEMENTS | html | pdf orig |
| Kapitola 10: | PROPERTIES OF ELEMENTS | html | pdf orig |
All spatial structure elements inherit the concepts associated to products, which are provided by IfcProduct. It includes:
The spatial structure can be defined as „breakdown of the project model into manageable subsets according to spatial arrangements“. It should be noted, that other decomposition structures for a project exist, but that the spatial structure is common to most disciplines and design tasks. It is therefore seen as the primary structure for building projects and required for the data exchange. The following four different concepts are subsumed under the IfcSpatialStructureElement entity:

Figure 6 : Definition of spatial structure elements
These different entities are contained by each other such as they provide a clear hierarchical structure for the building project. The next figure shows such a structure.

Figure 7 : Spatial structure of a building project
The four subtypes IfcSite, IfcBuilding, IfcBuildingStorey, IfcSpace are used to represent the levels of the spatial structure. Each has
The Name attribute has to be used to store the name of the building, and building story. E.g., the story name, such as “First Floor” should be exchanged by Name.
#9=IFCBUILDINGSTOREY(‚abcdefghijklmnopqrs109‘, #109, ‚First Floor‘, $, $, $, $, $,.ELEMENT., $);
The various subtypes define further attributes, which are introduced in the appropriate sub sections. In total each of the subtypes inherit the following attributes and inverse relationships:
ENTITY IfcSpatialStructureElement
GlobalId : IfcGloballyUniqueId;
OwnerHistory : IfcOwnerHistory;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
ObjectType : OPTIONAL IfcLabel;
ObjectPlacement : OPTIONAL IfcObjectPlacement;
Representation : OPTIONAL IfcProductRepresentation;
LongName : OPTIONAL IfcIdentifier;
CompositionType : IfcElementCompositionEnum;
INVERSE
IsDefinedBy : SET OF IfcRelDefines;
HasAssociations : SET OF IfcRelAssociates;
HasAssignments : SET OF IfcRelAssigns;
Decomposes : SET OF IfcRelDecomposes;
IsDecomposedBy : SET [0:1] OF IfcRelDecomposes;
ReferencedBy : SET OF IfcRelAssignsToProduct;
ContainsElements : SET OF IfcRelContainedInSpatialStructure;
END_ENTITY;
The spatial structure of a building project is created by using the fundamental decomposition relationship.
The subtype IfcRelAggregates is used to link the instances of IfcProject, IfcSite, IfcBuilding, IfcBuildingStorey, IfcSpace (provided that all levels are applicable) and establishes an hierarchical structure.

Figure 8 : Mandatory and optional levels of the spatial structure
Whereas the IfcProject, IfcBuilding and IfcBuildingStorey are mandatory levels for the exchange of complex project data, the IfcSite and IfcSpace represent optional levels (which may be provided, if they contain necessary data, but don't need to be provided).
In order to define a complex or a partial spatial structure element, the CompositionType attribute is used. If the CompositionType is COMPLEX, then it defines a site complex, or a building complex. If the CompositionType is PARTIAL, then it defines a partial site or a building section. If the CompositionType is ELEMENT, it defines (just) the site or the building.
Each instance of IfcProject, IfcSite, IfcBuilding, IfcBuildingStorey, IfcSpace is connected to other instances of the spatial structure by an instance of IfcRelAggregates, where the single RelatingElement points to the element at the higher level and the 1 to many RelatedElements point to the elements at the lower level of the hierarchy.
Figure 9 : Decomposition of a
spatial structure
Note: The Figure 8 shows the use of the IfcRelAggregates to define a spatial structure of a building project having a single site with one building. The building is further divided into two building section. Two stories are assigned to the first building section and three stories are assigned to the second building section.
The Figure 8 shows a vertical and horizontal division of the building. In these cases, the horizontal division (into building sections) takes priority and the building stories are later assigned to the sections. A building story that physically spans through two building sections would therefore be subdivided into two building stories, and each then assigned to a single building section. Figure 9 shows a graphical image of the sample spatial structure.
Figure 10 : Layout of the
example spatial structure
The example file shows the basic spatial structure of the example shown in Figure 8 and Figure 9. It should be noted, that the following information has to be given for each project:
The site, represented by IfcSite, is used to provide additional information about the building site and may include the representation of the terrain model for the building site. The following additional information (to the inherited Name, Description, LongName and ObjectType) may be given for an IfcSite.
In addition to the alphanumerical attributes the site mainly handles the reference to the building(s) which is(are) built or maintained at that site and the geometry of the terrain. Three different shape representations can be exchanged for the IfcSite:
1. the set of survey points and optionally breaklines, this is normally the outcome from the survey at the site and similar to existing simple exchange formats for site or terrain geometry. In this case the triangulation of the resulting face or shell based geometry (or mesh) is left to the receiving application.
2. the mesh of the terrain model, a set of 3 or 4 side faces connected in an connected face set, in this case the triangulation is already provided by the sending application
3. the b-rep geometry of the resulting solid (requires a fully closed solid for the terrain) In case 1 the following applies to the IfcShapeRepresentation used (see Figure 10):

Figure 11 : site representation by survey points and breaklines
In case 2 the following applies to the IfcShapeRepresentation used (see Figure 11):
Figure 12 : site
representation by a mesh
In case 3 the following applies to the IfcShapeRepresentation used:
The building, represented by IfcBuilding, is used to provide additional information about the building itself. It is associated (if given) to an IfcSite, if not, than directly to the IfcProject.
A building includes the references to the building stories which belong to that building, or a building may have building sections, which would be referenced by the building, in that case the building stories are referenced by the building sections4
The following additional information (in addition to the inherited Name, Description, LongName and ObjectType) may be given for an IfcBuilding.
Usually the building does not contain its own shape representations, as it is provided by its constituting elements. The ObjectType attribute should be reserved to contain a simple type description of the building (following local building standards), if a more complex classification of the building is required, the proper classification resource should be used (see 10.4.2).
The example below describes a sample building structure with building specific information (name, type, long name and address given). Also note that unit assignment has mm as length unit (not shown), therefore elevation is given in mm. PS: No position is given in the example.
The building story, represented by IfcBuildingStorey, is used to provide the information about the building story itself, a vertical structure normally used within building and construction. It is always associated to an IfcBuilding, either the building or the building section.
A building story includes the references to the spaces which belong to that building story. A building story may have partial building stories (such as split levels), which would be referenced by the building story, in that case the spaces are referenced by the partial building stories5
The following additional information (in addition to the inherited Name, Description, LongName and ObjectType) may be given for an IfcBuildingStorey.
Note4
It should be noted that the creation and exchange of such complex spatial
structures (such as building sections) may be beyond current capabilities of
software systems used in building/construction.
Note5
It should be noted that the creation and exchange of such complex spatial
structures(such as split level stories within normal stories) may be beyond
current capabilities of software systems used in building/construction.
Usually the building story does not contain its own shape representations, as it is provided by its constituting elements. The ObjectType attribute should be reserved to contain a simple type description of the building story.
Such a description should be agreed on in a project or local context and may include identifiers as „Basement“, „GroundFloor“, „UpperFloor“, or „RoofTop“.

Figure 13 : Example of building story structure
The example below describes the building structure, as given in Figure 12, including all relative placements (see 9.1.2.1.1) and attributes as discussed.
Beside spaces normally all building elements are assigned to the building
story, in which they are located. If building elements (or spaces) span through
many stories, they are assigned to the story at which they are based.
Also elements that are linked to other elements, such as openings or doors and
windows are separately assigned directly to the building story.
This containment relationship is handled by the UoF „Element in Space Containment“. The relationship IfcRelContainsInSpatialStructure should be used to exchange it.
The spatial structure is also reflected in the relative positioning. Each story, building and site should declare its own object coordinate system, which is positioned relative to the coordinate system of the spatial structure at the next higher level (i.e. identical with the RelatingObject in the IfcRelAggregates containment relationship)^6.

Figure 14 : relative object placement of the spatial structure
There are two scenarios for exporting multi-story buildings using the relative object placement and the Elevation attribute. These apply particularly to the coordination view of IFC2×.

Figure 15 : Story elevation with relative placement
Note6
The relative placement can be omitted if only absolute placements (see
10.1.2.1.2) are used.

Figure 16 : Story elevation with placement height zero and elevation
The space, represented by IfcSpace, is used to provide all information about the space as a functional area or volume within a spatial structure. It is associated (if given) to an IfcBuildingStorey, in the special case of an outdoor space, however, it can be directly associate to an IfcSite.
The following guidelines should apply for using the Name, Description, LongName and ObjectType attributes.
Note7 This can only be a rough indication of the type, for proper classification according to a building code the light weight classification (see 11.4.2.7.1) should be used.
Figure 17 : room stamp with
space information The following partial file contains the snip-out of the space
object with all name and simple type information, here in a German context8.
The following additional information (in addition to the inherited Name, Description, LongName and ObjectType) may be given for an IfcSpace.
Spaces normally contain all building service or interior design elements (such as distribution elements, electrical elements, furniture, fixture and equipment), if they are located within a single space. Large distribution elements, such as ducts or pipes, which span through multiple spaces can only be contained by the building story. This containment relationship is handled by the UoF „Element in Space Containment“. The relationship IfcRelContainsInSpatialStructure should be used to exchange it.
If the classification of the space should be exchanged explicitly it should follow the UoF “external classification association”, particularly the “light weight classification” (see 10.4.2.7.1).
Taking the previous example, the space is classified according to the German DIN277 as a HNF1. It should be exchanged as follows:
#285=IFCSPACE(‚3LweZaMsz0nR$8×1w5Bjie‘, #6, ‚W-001‘, $, ‚Wohnen und Aufenthalt‘, #284, #300, ‚Elternschlafzimmer‘, .ELEMENT., .INTERNAL., 0.0); #301=IFCCLASSIFICATIONREFERENCE($, ‚HNF1‘, ‚Wohnen und Aufenthalt‘, #302); #302=IFCCLASSIFICATION(‚Deutsche Industrienorm‘, ‚Juni 1987‘, $, ‚DIN277‘); #303=IFCRELASSOCIATESCLASSIFICATION(‚2hJ0MTr$v9hgPt_3AR_yCZ‘, #6, $, $, (#285), #301);
If the quantities should be exchanged explicitly it should follow the UoF
“„Element Quantities“ (see 10.3).
Quantities of spaces normally include net or gross areas, volumes and
perimeters. They are normally calculated according to a Method of Measurement,
which has to be given as well in order to interpret the results.
The following Figure 17 shows the quantities of the example space. They are all measured according to the Method of Measurement DIN277.
Note8: English translation of the example: type is living area and long name is master’s bedroom. Elevation with flooring is 0.0, i.e. the finish of the ground level.

Figure 18 : Quantities of sample space
The exchange of the calculated values for area and volume should be done by
using the IfcElementQuantity holding the Method of Measurement and the
individual subtypes of IfcPhysicalQuantity for each value.
Since the Unit attribute is NIL, the globally defined units apply to the values
of the quantity measures.
In addition to the alphanumerical attributes the space mainly holds the room geometry. Three different shape representations can be exchanged for the IfcSpace:
In case 1 the following applies to the IfcShapeRepresentation used:
Within the simple space example used in Figure 18 the shape presentation of the footprint is given by a polyline, as no arc segments are used.
NOTE: If a space has inner boundaries (i.e. subtraction areas) the RepresentationType should be ‚GeometricCurveSet‘, allowing a set of Items to store the outer and inner boundaries.

Figure 19 : footprint geometry of the sample space
In case 2 the following applies to the IfcShapeRepresentation used:
Within the simple space example used in Figure 18 (having a height of 2.7m) the shape presentation of the body is given by an extruded solid based on an arbitrary profile without voids.
In case 3 the following applies to the IfcShapeRepresentation used:
The space boundaries define the relationship between a space and its bounding
elements. Each space boundary defines an 1:1 relationship between a space and a
single bounding building element (if given), in this case a physical space
boundary.
In cases of an open space, the open side is defined as a virtual space
boundary.
The provision of space boundaries for spaces is declared in the UoF “Space
Element Boundaries”.
Space boundaries can be defined:
If space boundaries are defined physically then the geometry is given within
the object coordinate system of the space9.
For space boundaries defined along walls, the following geometry types should
be used:
In the simple sample space, a space boundary is defined as shown in Figure 19.

Figure 20 : space boundary of sample space
Within the IFC Model, a zone is defined as a subtype of IfcGroup. That is, it
acts as a functional related aggregation of objects.
However, whilst the IfcGroup can aggregate any set of instances that are
subtypes of IfcObject, the IfcZone is restricted by a WHERE rule so that it can
only aggregate spaces or other zones.
Note9 The provision of the space boundary is not required in all views declared for the use of the IFC2× model. However some views, like the HVAC or code-checking view depend on the provision of space boundaries.
The purpose of a zone is to be able to define spaces that are considered
together for the purposes of some external requirement.
That is, spaces may be aggregated into a zone for the purposes of provision of
engineering services (the maximum load on the south side of a building occurring
at a different time of day to the maximum load on the north side of the
building), for fire compartmentation, sprinkler zoning, security zoning, office
tenancy etc.
Whilst it is normally expected that the spaces in a zone will be contiguous
(i.e. adjacent to each other), this is not a mandatory requirement.
Therefore, it is possible to define a zone that includes non- adjoining
spaces.
These spaces may also be on separate storeys within the building.
This is relevant for certain types of zoning that may only be applicable to
particular types of space.
There may be many instances of IfcZone within a building, each zone
fulfilling a different purpose. To distinguish between them, it is important
that each zone is named. Zone names should be defined using the inherited Name
attribute from IfcRoot.
This resolves to a simple STRING data type. Note also that the attribute
ObjectType inherited from IfcObject may be optionally used to qualify the zone
name further.
This is particularly used in conjunction with property sets or type being
attached to the zone.