The IfcElementAssembly represents complex element assemblies aggregated from several
elements, such as discrete elements, building elements, or other elements.
EXAMPLE Steel construction assemblies, such as trusses and different kinds of frames, can be represented by the
IfcElementAssembly entity. Other examples include slab fields aggregated from a number of precast concrete slabs or
reinforcement units made from several reinforcement bars. Also bathroom units, staircase sections and other premanufactured or
precast elements are examples of the general IfcElementAssembly entity
NOTE The IfcElementAssembly is a general purpose entity that is required to be decomposed. Also
other subtypes of IfcElement can be decomposed, with some dedicated entities such as IfcWallElementedCase and
The assembly structure can be nested, i.e. an IfcElementAssembly could be an aggregated part within another IfcElementAssembly.
NOTE View definitions and/or implementer agreements may restrict the number of allowed levels of
The geometry of an IfcElementAssembly is generally
formed from its components, in which case it does not need to
have an explicit geometric representation. In some cases it may
be useful to also expose an own explicit representation of the
NOTE View definitions or implementer
agreements may further constrain the applicability of certain
shape representations at the IfcElementAssembly in respect
of the shape representations of its parts.
HISTORY New entity in IFC2x2.
- The IfcElementAssembly shall have an aggregation
relationship to the contained parts, i.e. the (INV)
IsDecomposedBy relationship shall be utilzed.
Common Use Definitions
The following concepts are inherited at supertypes:
- IfcRoot: Identity, Revision Control
- IfcElement: Property Sets for Objects, Product Placement, Box Geometry, FootPrint Geometry, Body SurfaceOrSolidModel Geometry, Body SurfaceModel Geometry, Body Tessellation Geometry, Body Brep Geometry, Body AdvancedBrep Geometry, Body CSG Geometry, Mapped Geometry
The Object Typing concept applies to this entity as shown in Table 46.
Table 46 — IfcElementAssembly Object Typing
The Object Aggregation concept applies to this entity as shown in Table 47.
Table 47 — IfcElementAssembly Object Aggregation
The IfcElementAssembly shall represent an aggregate,
i.e. it should have other elements, being subtypes of
as contained (sub)parts. The table above only represents a selection of subtypes of IfcElement that are legitimate as parts in an
- The IfcElementAssembly is an aggregate i.e. being
composed by other elements and acting as an assembly using the
objectified relationship IfcRelAggregates, refering to it
by its inverse attribute
SELF\IfcObjectDefinition.IsDecomposedBy. Components of an
assembly are described by instances of subtypes of
- In this case, the contained subtypes of IfcElement
shall not be additionally contained in the project spatial
hierarchy, i.e. the inverse attribute
SELF\IfcElement.ContainedInStructure of those
IfcElement's shall be NIL.
Figure 118 illustrates spatial containment and element aggregation relationships.
Figure 118 — Element assembly containment
The Spatial Containment concept applies to this entity as shown in Table 48.
|IfcBuildingStorey||Default spatial container|
|IfcBuilding||Spatial container for element assemblies not assignable to a building storey|
|IfcSite||Spatial container for element assemblies that are placed on site (outside of building)|
Table 48 — IfcElementAssembly Spatial Containment
The IfcElementAssembly should have a relationship for its
containment in the hierachical spatial structure of the project. Only if the IfcElementAssembly is itself a part of another assembly this relationship should be omitted.
XSD Specification: <xs:element name="IfcElementAssembly" type="ifc:IfcElementAssembly" substitutionGroup="ifc:IfcElement" nillable="true"/>
<xs:attribute name="AssemblyPlace" type="ifc:IfcAssemblyPlaceEnum" use="optional"/>
<xs:attribute name="PredefinedType" type="ifc:IfcElementAssemblyTypeEnum" use="optional"/>
|CorrectPredefinedType|| : ||NOT(EXISTS(PredefinedType)) OR
(PredefinedType <> IfcElementAssemblyTypeEnum.USERDEFINED) OR
((PredefinedType = IfcElementAssemblyTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));|
|CorrectTypeAssigned|| : ||(SIZEOF(IsTypedBy) = 0) OR
('IFCPRODUCTEXTENSION.IFCELEMENTASSEMBLYTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy.RelatingType));|
|AssemblyPlace|| : ||A designation of where the assembly is intended to take place defined by an Enum.|
|PredefinedType|| : ||
Predefined generic types for a element assembly that are specified in an enumeration. There might be property sets defined specifically for each predefined type.
IFC4 CHANGE The attribute has been changed to be optional.
|CorrectPredefinedType|| : ||
Either the PredefinedType attribute is unset (e.g. because an IfcElementAssemblyType is associated), or the inherited attribute ObjectType shall be provided, if the PredefinedType is set to USERDEFINED.
|CorrectTypeAssigned|| : ||
Either there is no element assembly type object associated, i.e. the IsTypedBy inverse relationship is not provided, or the associated type object has to be of type IfcElementAssemblyType.
Link to this page