Class Ifc4::IfcStair

Nested Relationships

This class is a nested type of Struct Ifc4.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4::IfcStair : public Ifc4::IfcBuildingElement

Definition from ISO 6707-1:1989: Construction comprising a succession of horizontal stages (steps or landings) that make it possible to pass on foot to other levels. A stair is a vertical passageway allowing occupants to walk (step) from one floor level to another floor level at a different elevation. It may include a landing as an intermediate floor slab. The stair should either be represented:

as a stair assembly entity that aggregates all components (stair flight, landing, etc. with own representations), or as a single stair entity without decomposition including all representation directly at the stair entity.

In case of a stair container, the aggregation is handled via the IfcRelAggregates relationship, relating an IfcStair with the related IfcStairFlight’s and landings (represented by IfcSlab with IfcSlab.PredefinedType = ‘LANDING’). IfcRailing’s belonging to the stair may be included into the aggregation as well.

HISTORY New Entity in IFC Release 2.0. IFC2x4 CHANGE Attribute ShapeType renamed to PredefinedType.

Type Use Definition IfcStair defines the occurrence of any stair, common information about stair types (or styles) is handled by IfcStairType. The IfcStairType (if present) may establish the common type name, usage (or predefined) type, common material, common set of properties and common shape representations (using IfcRepresentationMap). The IfcStairType is attached using the IfcRelDefinedByType.RelatingType objectified relationship and is accessible by the inverse IsDefinedBy attribute. NOTE Since the IfcStair might be represented as an aggregate of parts, e.g. represented by IfcStairFlight, or IfcSlab, these individual parts may have type information attached (represented e.g. by IfcStairFlightType, or IfcSlabType). Material Use Definition The material of the IfcStair is defined by the IfcMaterial and attached by the IfcRelAssociatesMaterial.RelatingMaterial. It is accessible by the inverse HasAssociations relationship. Material information can also be given at the IfcStairType, defining the common attribute data for all occurrences of the same type. It is then accessible by the inverse IsDefinedBy relationship pointing to IfcStair.HasAssociations and via IfcRelAssociatesMaterial.RelatingMaterial to IfcMaterial. If both are given, then the material directly assigned to IfcStair overrides the material assigned to IfcStairType.

Property Set Use Definition: The property sets relating to the IfcStair 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 IfcStair are part of this IFC release:

Pset_StairCommon: common property set for all stair occurrences

Figure 127 shows the use of property sets Pset_StairCommon and Pset_StairFlightCommon for the various stair properties.

Figure 127 — Stair properties

Geometry Use Definitions: The geometric representation of IfcStair is given by the IfcProductDefinitionShape, allowing multiple geometric representation. Independent geometric representations should only be used when the IfcStair 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 placement The local placement for IfcStair 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 given) to the local placement of the same IfcSpatialStructureElement that is used in the ContainedInStructure inverse attribute or to a referenced spatial structure element at a higher level. If the relative placement is not used, the absolute placement is defined within the world coordinate system.

If the LocalPlacement is given for the IfcStair, then all components, which are aggregated to the stair should use this placement as their relative placement. Geometric Representation Currently, the ‘Axis’, ‘FootPrint’, ‘Body’, and ‘Box’ representations are supported. The ‘Box’ representation includes the representation type ‘BoundingBox’ and is explained at IfcBuildingElement.

Axis: A two-dimensional open curve IfcBoundedCurve defining the walking line for the stair. FootPrint: A geometric curve set defining the footing print, including the boundary of the stair. Body: A solid representation defining the 3D shape of the stair.

Axis Representation The walking line is represented by a two-dimensional open curve as the axis. The curve is directed into the upward direction (direction has to be interpreted as specified at the subtypes of IfcCurve). The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘Axis’ RepresentationType : ‘Curve2D’

NOTE The ‘Axis’ representation of IfcStair may be provided even if the IfcStair has components with own shape representations.

FootPrint Representation The stair foot print, including the stair boundary is represented by a two-dimensional geometric curve set. The following attribute values for the IfcShapeRepresentation holding this geometric representation shall be used:

RepresentationIdentifier : ‘FootPrint’ RepresentationType : ‘GeometricCurveSet’

NOTE The ‘Footprint’ representation of IfcStair may be provided even if the IfcStair has components with own shape representations.

Body Representation The body representation of IfcStair can be represented using the representation types ‘SweptSolid’, ‘SurfaceModel’, ‘Brep’, and ‘MappedRepresentation’. The general usage of representation is are explained at IfcBuildingElement. No further constraints or provisions on how to use the representation types are defined for IfcStairFlight.

RepresentationIdentifier : ‘Body’ RepresentationType : ‘SweptSolid’, ‘SurfaceModel’, ‘Brep’, ‘MappedRepresentation’

The ‘Body’ representation shall only be provided if the IfcStair has no components defined (empty set of SELF\IfcObject.IsDecomposedBy) or if the components defined no not carry an own ‘Body’ representation. Geometric representation by aggregated elements If the IfcStair has components (referenced by SELF\IfcObject.IsDecomposedBy) with own ‘Body’ representation, then no ‘Body’ representation shall defined for the IfcStair. The IfcStair shape is then represented by the geometric representation of its components. The components are accessed via SELF\IfcObject.IsDecomposedBy[1].RelatedObjects.

Figure 128 illustrates stair placement, where the IfcStair defines the local placement for all components and the common ‘Axis’ representation, and each component has its own ‘Body’ representation.

Figure 128 — Stair placement

Public Types

typedef IfcTemplatedEntityList<IfcStair> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcStair.

::Ifc4::IfcStairTypeEnum::Value PredefinedType() const

Predefined shape types for a stair that are specified in an enumeration.

IFC2x4 CHANGE The attribute has been renamed from ShapeType and changed to be OPTIONAL with upward compatibility for file based exchange.

void setPredefinedType(::Ifc4::IfcStairTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcStair(IfcEntityInstanceData *e)
IfcStair(std::string v1_GlobalId, ::Ifc4::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag, boost::optional<::Ifc4::IfcStairTypeEnum::Value> v9_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()