Class Ifc4x2::IfcUnitaryEquipment

Nested Relationships

This class is a nested type of Struct Ifc4x2.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x2::IfcUnitaryEquipment : public Ifc4x2::IfcEnergyConversionDevice

Unitary equipment typically combine a number of components into a single product, such as air handlers, pre-packaged rooftop air-conditioning units, and split systems.

HISTORY New entity in IFC2x4

Type Use Definition IfcUnitaryEquipment defines the occurrence of any unitary equipment; common information about unitary equipment types is handled by IfcUnitaryEquipmentType. The IfcUnitaryEquipmentType (if present) may establish the common type name, usage (predefined type), properties, materials, ports, composition, assignments, and representations. The IfcUnitaryEquipmentType is attached using the IfcRelDefinesByType objectified relationship and is accessible by the IsTypedBy inverse attribute. If the IfcUnitaryEquipmentType has ports or aggregated elements, such objects are reflected at the IfcUnitaryEquipment occurrence using the IfcRelDefinesByObject relationship.

Property Use Definition The property sets relating to this entity are defined by IfcPropertySet and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. Property sets may also be specified at the IfcUnitaryEquipmentType, defining the common property data for all occurrences of the same type. They are then accessible by the IsTypedBy inverse attribute pointing to IfcUnitaryEquipmentType.HasPropertySets. If both are given, then the properties directly defined at IfcUnitaryEquipment override the properties defined at IfcUnitaryEquipmentType. Refer to the documentation at the supertype IfcEnergyConversionDevice and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: (All Types)

Pset_UnitaryEquipmentTypeCommon (PSET_TYPEDRIVENOVERRIDE)


Pset_UnitaryEquipmentTypeAirConditioningUnit (PSET_TYPEDRIVENOVERRIDE)


Pset_UnitaryEquipmentTypeAirHandler (PSET_TYPEDRIVENOVERRIDE)

Quantity Use Definition The quantities relating to this entity are defined by IfcElementQuantity and attached by the IfcRelDefinesByProperties relationship. They are accessible by the IsDefinedBy inverse attribute. The following base quantities are defined and shall be exchanged with the IfcElementQuantity.Name = ‘BaseQuantities’. Other quantities, being subjected to local standard of measurement, may be defined with another string value assigned to Name. In this case a valid value for MethodOfMeasurement shall be provided.


Material Use Definition The material of the IfcUnitaryEquipment is defined by IfcMaterialConstituentSet or as a fallback by IfcMaterial, and attached by the RelatingMaterial attribute on the IfcRelAssociatesMaterial relationship. It is accessible by the HasAssociations inverse attribute. Material information can also be given at the IfcUnitaryEquipmentType, defining the common attribute data for all occurrences of the same type. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

Body: The primary material from which the object is constructed.

Composition Use Definition The IfcUnitaryEquipment may be aggregated into components using IfcRelAggregates where RelatingObject refers to the enclosing IfcUnitaryEquipment and RelatedObjects contains one or more components. Aggregation use is defined for the following predefined types:

May contain IfcDistributionElement components. Unitary equipment (air handlers in particular) may elaborate contained elements such as dampers, fans, coils, sensors, actuators, and controllers. Such breakdown provides access to component information and tracking of performance history for embedded elements.

Figure 231 illustrates unitary equipment composition use. Figure 231 — Unitary equipment composition use

Port Use Definition The distribution ports relating to the IfcUnitaryEquipment are defined by IfcDistributionPort and attached by the IfcRelConnectsPortToElement relationship. If the unitary equipment occurrence is defined by IfcUnitaryEquipmentType, then the port occurrences must reflect those defined at the IfcUnitaryEquipmentType using the IfcRelDefinesByObject relationship. Ports are specific to the IfcUnitaryEquipment PredefinedType as follows indicated by the IfcDistributionPort Name, PredefinedType, and FlowDirection:


ReturnAirIn (AIRCONDITIONING, SINK): Return air entering mixture or exhausted. SupplyAirOut (AIRCONDITIONING, SOURCE): Chilled supply air. OutsideAirIn (VENTILATION, SINK): Outside air entering mixture. ExhaustAirOut (EXHAUST, SOURCE): Exhaust air leaving to outside. ChilledWaterIn (CHILLEDWATER, SINK): Chilled water entering cooling coil. ChilledWaterOut (CHILLEDWATER, SOURCE): Chilled water leaving cooling coil. HeatingIn (HEATING, SINK): Steam entering heating coil. HeatingOut (HEATING, SOURCE): Steam leaving heating coil. Power (ELECTRICAL, SINK): Electrical power source. Control (CONTROL, SINK): Control system communication.

Figure 232 illustrates unitary equipment port use. Figure 232 — Unitary equipment port use

Public Types

typedef IfcTemplatedEntityList<IfcUnitaryEquipment> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcUnitaryEquipment.

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

Public Static Functions

const IfcParse::entity &Class()