Navigation

IfcRoof

Definition from IAI: The roof entity (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 a roof (IfcRoof) with the related roof entities, like slabs (IfcSlab), rafters and purlins (IfcBeam), or other (included) roofs, such as dormers (IfcRoof).

The quantities relating to the roof are defined by the IfcElementQuantity and attached by the IfcRelDefinesByProperties. The following quantities are foreseen, but will be subjected to the local standard of measurement:

Name Description Value Type
TotalRoofArea Total (exposed) area of all roof slabs belonging to the roof. The exact definition and calculation rules depend on the method of measurement used. IfcAreaQuantity

HISTORY: New Entity in IFC Release 2.0
ISSUES: See issue and change log for changes made in IFC Release 2.x

Geometry Use Definitions:

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

Local Position

The local placement for IfcRoof 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.

If the LocalPlacement is given for the IfcRoof, then all components, which are aggregated to the roof should use this placement as their relative placement.

Geometric Representation

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.

If the IfcRoof has no components defined (empty set of SELF\IfcObject.IsDecomposedBy) then the IfcRoof may be represented by an IfcShapeRepresentation with the RepresentationType = 'Brep'.

Illustration:

roof IfcRoof defining only the local placement for all components.

EXPRESS specification:

ENTITY IfcRoof
SUBTYPE OF ( IfcBuildingElement);
ShapeType  :  IfcRoofTypeEnum;
WHERE
WR1  :  (HIINDEX(SELF\IfcObject.IsDecomposedBy) = 0) OR ((HIINDEX(SELF\IfcObject.IsDecomposedBy) = 1) AND (NOT(EXISTS(SELF\IfcProduct.Representation))));
END_ENTITY;

Attribute definitions:

ShapeType  :  Predefined shape types for a roof that are specified in an enumeration.

Formal Propositions:

WR1  :  Either the roof is not decomposed into its roof slabs (the roof can have independent geometry), or the geometry shall not be given at IfcRoof directly.

References (1):

Name Type Referred through Express-G
IfcBuildingElement Entity
Subtype
Diagram 1

Inheritance graph

ENTITY IfcRoof;
ENTITY IfcRoot;
GlobalId  :  IfcGloballyUniqueId;
OwnerHistory  :  IfcOwnerHistory;
Name  :  OPTIONAL IfcLabel;
Description  :  OPTIONAL IfcText;
ENTITY IfcObject;
ObjectType  :  OPTIONAL IfcLabel;
INVERSE
IsDefinedBy  :  SET OF IfcRelDefines FOR RelatedObjects;
HasAssociations  :  SET OF IfcRelAssociates FOR RelatedObjects;
HasAssignments  :  SET OF IfcRelAssigns FOR RelatedObjects;
Decomposes  :  SET OF IfcRelDecomposes FOR RelatedObjects;
IsDecomposedBy  :  SET [0:1] OF IfcRelDecomposes FOR RelatingObject;
ENTITY IfcProduct;
ObjectPlacement  :  OPTIONAL IfcObjectPlacement;
Representation  :  OPTIONAL IfcProductRepresentation;
INVERSE
ReferencedBy  :  SET OF IfcRelAssignsToProduct FOR RelatingProduct;
ENTITY IfcElement;
Tag  :  OPTIONAL IfcIdentifier;
INVERSE
ConnectedTo  :  SET OF IfcRelConnectsElements FOR RelatingElement;
ConnectedFrom  :  SET OF IfcRelConnectsElements FOR RelatedElement;
ContainedInStructure  :  SET [0:1] OF IfcRelContainedInSpatialStructure FOR RelatedElements;
ENTITY IfcBuildingElement;
INVERSE
ProvidesBoundaries  :  SET OF IfcRelSpaceBoundary FOR RelatedBuildingElement;
HasOpenings  :  SET OF IfcRelVoidsElement FOR RelatingBuildingElement;
FillsVoids  :  SET [0:1] OF IfcRelFillsElement FOR RelatedBuildingElement;
ENTITY IfcRoof;
ShapeType  :  IfcRoofTypeEnum;
END_ENTITY;