Class Ifc4::IfcElementAssembly

Nested Relationships

This class is a nested type of Struct Ifc4.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4::IfcElementAssembly : public Ifc4::IfcElement

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 IfcSlabElementedCase. 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 nesting. HISTORY New Entity for Release IFC2x Edition 2.

Containment Use Definition The IfcElementAssembly should have (and in most implementation scenarios it is mandatory) a relationship for its hierachical containment in the spatial structure of the project.

The IfcElementAssembly is places within the project spatial hierarchy using the objectified relationship IfcRelContainedInSpatialStructure, refering to it by its inverse attribute SELF\IfcElement.ContainedInStructure. Subtypes of IfcSpatialStructureElement are valid spatial containers, with IfcBuildingStorey being the default container.

The IfcElementAssembly shall represent an aggregate, i.e. it should have other elements, being subtypes of IfcElement, as contained (sub)parts.

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 IfcElement. In this case, the containedsubtypes 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 27 illustrates spatial containment and element aggregation relationships.

Figure 27 — Element assembly containment

Geometry Use Definitions The geometric representation of IfcElementAssembly is given by the IfcProductDefinitionShape, allowing multiple geometric representations. Local Placement The local placement for IfcElementAssembly 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.

Geometric Representations 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 aggregate. 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. Informal proposition

The IfcElementAssembly shall have an aggregation relationship to the contained parts, i.e. the (INV) IsDecomposedBy relationship shall be utilzed.

Public Types

typedef IfcTemplatedEntityList<IfcElementAssembly> list

Public Functions

bool hasAssemblyPlace() const

Whether the optional attribute AssemblyPlace is defined for this IfcElementAssembly.

::Ifc4::IfcAssemblyPlaceEnum::Value AssemblyPlace() const

A designation of where the assembly is intended to take place defined by an Enum.

void setAssemblyPlace(::Ifc4::IfcAssemblyPlaceEnum::Value v)
bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcElementAssembly.

::Ifc4::IfcElementAssemblyTypeEnum::Value PredefinedType() const

Predefined generic types for a element assembly that are specified in an enumeration. There might be property sets defined specifically for each predefined type.

IFC2x4 CHANGE The attribute has been changed to be optional.

void setPredefinedType(::Ifc4::IfcElementAssemblyTypeEnum::Value v)
const IfcParse::entity &declaration() const
IfcElementAssembly(IfcEntityInstanceData *e)
IfcElementAssembly(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::IfcAssemblyPlaceEnum::Value> v9_AssemblyPlace, boost::optional<::Ifc4::IfcElementAssemblyTypeEnum::Value> v10_PredefinedType)

Public Static Functions

const IfcParse::entity &Class()