A roof is the covering of the top part of a building, it protects the building against the effects of wheather.

NOTE  Definition according to ISO 6707-1: construction enclosing the building from above.

The IfcRoof is a description of the total roof. It acts as a container entity, that aggregates all components of the roof, it represents. The aggregation is handled via the IfcRelAggregates relationship, relating an IfcRoof with the related roof elements, like slabs (represented by IfcSlab), rafters and purlins (represented by IfcBeam), or other included roofs, such as dormers (represented by IfcRoof).

The geometric representation of IfcRoof is given by the IfcProductDefinitionShape, allowing multiple geometric representations. Independent 'Body' geometric representations should only be used when the IfcRoof is not defined as an aggregate. If defined as an aggregate, the 'Body' geometric representation is the sum of the representation of the components within the aggregate.

NOTE  View definitions and implementer agreements may restrict the IfcRoof to not have an independent geometry, but to always require aggregated elements to represent the shape of the roof.
NOTE  If the IfcRoof has aggregated elements to represent the shape of the roof, then only those elements shall have openings, not the IfcRoof itself.
HISTORY  New entity in IFC2.0.
IFC4 CHANGE  Attribute ShapeType renamed to PredefinedType.

Common Use Definitions

The following concepts are inherited at supertypes:

 Instance diagram

Object Typing

The Object Typing concept applies to this entity as shown in Table 155.

Table 155 — IfcRoof Object Typing

Property Sets for Objects

The Property Sets for Objects concept applies to this entity as shown in Table 156.

Table 156 — IfcRoof Property Sets for Objects

Quantity Sets

The Quantity Sets concept applies to this entity as shown in Table 157.

Table 157 — IfcRoof Quantity Sets

Spatial Containment

The Spatial Containment concept applies to this entity as shown in Table 158.
IfcBuildingStoreyDefault spatial container
IfcBuildingSpatial container for the element if it cannot be assigned to a building storey
IfcSiteSpatial container for the element in case that it is placed on site (outside of building)

Table 158 — IfcRoof Spatial Containment

Element Decomposition

The Element Decomposition concept applies to this entity as shown in Table 159.
IfcSlabA roof may be aggregated into slabs for each face.

Table 159 — IfcRoof Element Decomposition

Geometric representation by aggregated elements

If the IfcRoof has components (referenced by SELF\IfcObject.IsDecomposedBy) then no independent geometric representation shall defined for the IfcRoof. The IfcRoof is then geometrically represented by the geometric representation of its components. The components are accessed via SELF\IfcObject.IsDecomposedBy[1].RelatedObjects. The geometric representations that are supported for the aggregated elements are defined with each element. See geometric use definition for IfcSlab, IfcBeam, IfcColumn, IfcBuildingElementPart and other subtypes of IfcBuildingElement.

Figure 207 illustrates roof placement, with an IfcRoof defining the local placement for all aggregated elements.


Figure 207 — Roof placement

Product Placement

The Product Placement concept applies to this entity as shown in Table 160.
IfcLocalPlacementIfcLocalPlacementRelative placement according to position and rotation relative to container.
IfcLocalPlacement Absolute placement according to position and rotation of world coordinate system.
IfcGridPlacement Placement according to grid intersection.

Table 160 — IfcRoof Product Placement

The following restriction may be imposed by view definitions or implementer agreements:

XSD Specification:

 <xs:element name="IfcRoof" type="ifc:IfcRoof" substitutionGroup="ifc:IfcBuildingElement" nillable="true"/>
 <xs:complexType name="IfcRoof">
   <xs:extension base="ifc:IfcBuildingElement">
    <xs:attribute name="PredefinedType" type="ifc:IfcRoofTypeEnum" use="optional"/>

EXPRESS Specification:

SUBTYPE OF IfcBuildingElement;
PredefinedType : OPTIONAL IfcRoofTypeEnum;
CorrectShapeDecomposition : (HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 0) OR ((HIINDEX(SELF\IfcObjectDefinition.IsDecomposedBy) = 1) AND ((NOT(EXISTS(SELF\IfcProduct.Representation))) OR ((EXISTS(SELF\IfcProduct.Representation)) AND (SIZEOF(QUERY( temp <* SELF\IfcProduct.Representation.Representations | temp.RepresentationIdentifier = 'Body')) = 0 ) ) ) );
CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR (PredefinedType <> IfcRoofTypeEnum.USERDEFINED) OR ((PredefinedType = IfcRoofTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR ('IFCSHAREDBLDGELEMENTS.IFCROOFTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));

Link to EXPRESS-G diagram EXPRESS-G diagram

Attribute Definitions:

PredefinedType : Predefined generic types for a roof that are specified in an enumeration. There may be a property set given for the predefined types.
NOTE  The PredefinedType shall only be used, if no IfcRoofType is assigned, providing its own IfcRoofType.PredefinedType.
IFC4 CHANGE The attribute has been renamed from ShapeType and changed to be OPTIONAL with upward compatibility for file based exchange.

Formal Propositions:

CorrectShapeDecomposition : Either the IfcRoof is not decomposed into its roof slabs and supporting construction elements, then the IfcRoof may have independent geometry. Or the IfcRoof is decomposed into parts, then the IfcRoof shall not have an own geometric shape representation of RepresentationType = 'Body'.
CorrectPredefinedType : Either the PredefinedType attribute is unset (e.g. because an IfcRoofType is associated), or the inherited attribute ObjectType shall be provided, if the PredefinedType is set to USERDEFINED.
CorrectTypeAssigned : Either there is no roof type object associated, i.e. the IsTypedBy inverse relationship is not provided, or the associated type object has to be of type IfcRoofType.

Inheritance Graph:

GlobalId : IfcGloballyUniqueId;
OwnerHistory : OPTIONAL IfcOwnerHistory;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
ENTITY IfcObjectDefinition
HasAssignments : SET OF IfcRelAssigns FOR RelatedObjects;
Nests : SET [0:1] OF IfcRelNests FOR RelatedObjects;
IsNestedBy : SET OF IfcRelNests FOR RelatingObject;
HasContext : SET [0:1] OF IfcRelDeclares FOR RelatedDefinitions;
IsDecomposedBy : SET OF IfcRelAggregates FOR RelatingObject;
Decomposes : SET [0:1] OF IfcRelAggregates FOR RelatedObjects;
HasAssociations : SET OF IfcRelAssociates FOR RelatedObjects;
ENTITY IfcObject
ObjectType : OPTIONAL IfcLabel;
IsDeclaredBy : SET [0:1] OF IfcRelDefinesByObject FOR RelatedObjects;
Declares : SET OF IfcRelDefinesByObject FOR RelatingObject;
IsTypedBy : SET [0:1] OF IfcRelDefinesByType FOR RelatedObjects;
IsDefinedBy : SET OF IfcRelDefinesByProperties FOR RelatedObjects;
ENTITY IfcProduct
ObjectPlacement : OPTIONAL IfcObjectPlacement;
Representation : OPTIONAL IfcProductRepresentation;
ReferencedBy : SET OF IfcRelAssignsToProduct FOR RelatingProduct;
ENTITY IfcElement
Tag : OPTIONAL IfcIdentifier;
FillsVoids : SET [0:1] OF IfcRelFillsElement FOR RelatedBuildingElement;
ConnectedTo : SET OF IfcRelConnectsElements FOR RelatingElement;
IsInterferedByElements : SET OF IfcRelInterferesElements FOR RelatedElement;
InterferesElements : SET OF IfcRelInterferesElements FOR RelatingElement;
HasProjections : SET OF IfcRelProjectsElement FOR RelatingElement;
ReferencedInStructures : SET OF IfcRelReferencedInSpatialStructure FOR RelatedElements;
HasOpenings : SET OF IfcRelVoidsElement FOR RelatingBuildingElement;
IsConnectionRealization : SET OF IfcRelConnectsWithRealizingElements FOR RealizingElements;
ProvidesBoundaries : SET OF IfcRelSpaceBoundary FOR RelatedBuildingElement;
ConnectedFrom : SET OF IfcRelConnectsElements FOR RelatedElement;
ContainedInStructure : SET [0:1] OF IfcRelContainedInSpatialStructure FOR RelatedElements;
ENTITY IfcBuildingElement
HasCoverings : SET OF IfcRelCoversBldgElements FOR RelatingBuildingElement;
PredefinedType : OPTIONAL IfcRoofTypeEnum;

Link to this page  Link to this page