Class Ifc4x1::IfcDistributionControlElement

Nested Relationships

This class is a nested type of Struct Ifc4x1.

Inheritance Relationships

Base Type

Derived Types

Class Documentation

class Ifc4x1::IfcDistributionControlElement : public Ifc4x1::IfcDistributionElement

The distribution element IfcDistributionControlElement defines occurrence elements of a building automation control system that are used to impart control over elements of a distribution system.

This class defines elements of a building automation control system. These are typically used to control distribution system elements to maintain variables such as temperature, humidity, pressure, flow, power, or lighting levels, through the modulation, staging or sequencing of mechanical or electrical devices. The three general functional categories of control elements are as follows:

Impart control over flow control elements (IfcFlowController) in a distribution system such as dampers, valves, or relays, typically through the use of actuation (IfcActuator). Sensing elements (IfcSensor) that measure changes in the controlled variable such as temperature, humidity, pressure, or flow. Controllers (IfcController) typically classified according to the control action they seek to perform and generally responsible for making decisions about the elements under control.

Since this class and its subtypes typically relate to many different distribution flow elements (IfcDistributionFlowElement), the objectified relationship IfcRelFlowControlElements has been provided to relate control and flow elements as required.

IFC2x4 CHANGE: ControlElementId attribute deleted; replaced by classification usage. HISTORY: New entity in IFC R2.0.

Type Use Definition IfcDistributionControlElement defines the occurrence of any distribution control element; common information about distribution control element types is handled by IfcDistributionControlElementType. The IfcDistributionControlElementType (if present) may establish the common type name, usage (predefined type), properties, materials, ports, composition, assignments, and representations. The IfcDistributionControlElementType is attached using the IfcRelDefinesByType objectified relationship and is accessible by the IsTypedBy inverse attribute. If the IfcDistributionControlElementType has ports or aggregated elements, such objects are reflected at the IfcDistributionControlElement occurrence using the IfcRelDefinesByObject relationship. Direct instantiation of IfcDistributionControlElement with IfcObject.ObjectType asserted provides the meaning of a distribution control element proxy.

Property Set 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 IfcDistributionControlElementType, defining the common property data for all occurrences of the same type. They are then accessible by the IsTypedBy inverse attribute pointing to IfcDistributionControlElementType.HasPropertySets. If both are given, then the properties directly defined at IfcDistributionControlElement override the properties defined at IfcDistributionControlElementType. Refer to the documentation at the supertype IfcDistributionElement and ancestors for inherited property set definitions.

Classification Use Definition In addition to general product and project classification (UniFormat, etc.), classifications may also be applied to indicate a device address or addressing scheme using IfcRelAssociatesClassification where RelatedObjects contains the IfcDistributionControlElement and RelatingClassification refers to an IfcClassification or IfcClassificationReference.

IfcClassification: Indicates an addressing scheme managed by the device where ReferenceTokens defines the format of the address to be specified at IfcClassificationReference.ItemReference. A classification hierarchy may optionally be provided indicating detected or provisioned device addresses. IfcClassificationReference: Indicates the address of the control element where Identification uniquely identifies the element within the control system as determined by the ClassificationSource. Several examples are illustrated:

‘BACnet’: BACnetObjectIdentifier in the decimal form ‘12.15’ (Digital Input #15) indicating type ID and instance ID. ‘IP’: IP Address in the decimal form ‘’ such as for an IPv4 network. ‘OPC’: Hierarchical ItemID in the alphanumeric form ‘B204.Tank2.Temperature’ ‘X-10’: Alphabetic and numeric code in the form ‘B12’ (House B, Device 12) indicating House Code and Device Code.

Figure 147 illustrates classification usage.

Figure 147 — Distribution control classification

Composition Use Definition The IfcDistributionControlElement may be decomposed into components using IfcRelAggregates where RelatingObject refers to the enclosing IfcDistributionControlElement and RelatedObjects contains one or more components. Likewise, a control element may be aggregated within another element. For example, a thermostat may contain temperature sensors, and a programmable logic controller may contain virtual (software-based) control elements. Standard types for composition are defined at subtypes.

Connection Use Definition The IfcDistributionControlElement may be connected to other objects as follows using the indicated relationship:

IfcSpatialStructureElement (IfcRelContainedInSpatialStructure) : Indicates the spatial location containing the element. If an element is aggregated within another element, then only the top-level element participates in this relationship. IfcElement (IfcRelConnectsElements) : Indicates physical connectivity with another element (but not embedding or flow control), such as a sensor attached to a wall. IfcRelConnectsElements.RelatingElement refers to the anchored side (for example, wall hosting sensor). IfcDistributionPort (IfcRelConnectsPortToElement) : Indicates ports on the element which may be connected to other elements for control signal transmission or electric power. Standard port names, types, and directions are defined at subtypes. IfcDistributionFlowElement (IfcRelFlowControlElements) : Indicates a flow element is sensed or controlled by the control element, such as a tank for a level sensor or a valve for an actuator.

Assignment Use Definition The IfcDistributionControlElement may be assigned to the following entities using relationships as indicated:

IfcDistributionSystem (IfcRelAssignsToGroup): Indicates a system containing interconnected devices, where control elements are typically part of a control system having PredefinedType=CONTROL. IfcPerformanceHistory (IfcRelAssignsToControl): Indicates realtime or historical infomation captured for the device.

The IfcDistributionControlElement may have assignments of its own using the IfcRelAssignsToProduct relationship where RelatingProduct refers to the IfcDistributionControlElement and RelatedObjects contains one or more objects of the following types:

IfcTask: Indicates tasks used to purchase, install, renovate, demolish, operate, or otherwise act upon the element. If the element has a type, available task types are assigned to the element type. IfcProcedure: Indicates procedures used to operate the element. If the element has a type, available procedure types are assigned to the element type. IfcEvent: Indicates events raised by the element, sequenced by procedures to be followed. If the element has a type, available event types are assigned to the element type.

Material Use Definition The material of the IfcDistributionControlElement is defined using one of the following entities:

IfcMaterialConstituentSet: For elements containing multiple materials, this indicates materials at named aspects.

IfcMaterial: For elements comprised of a single material, this indicates the material.

The material is 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 IfcDistributionControlElementType, defining the common attribute data for all occurrences of the same type. Standard names and material types are defined at subtypes.

Representation Use Definition The following shape representations are supported for subtypes of IfcDistributionControlElement, distinguished by IfcShapeRepresentation.RepresentationIdentifier:

‘Footprint’: Represents the 2D footprint outline of the item having IfcShapeRepresentation.RepresentationType of ‘GeometricCurveSet’ and containing a single IfcGeometricCurveSet consisting of one or more IfcCurve subtypes such as IfcPolyline, IfcTrimmedCurve, IfcCompositeCurve, or IfcCircle.

‘Body’: Represents the 3D shape of the item having IfcShapeRepresentation.RepresentationType of ‘SurfaceModel’, ‘SolidModel’, or any solid model specializations including ‘Brep’, ‘AdvancedBrep’, ‘SweptSolid’, ‘AdvancedSweptSolid’, ‘CSG’, ‘Clipping’, or ‘SectionedSpine’).

‘Clearance’: Represents the 3D clearance volume of the item having RepresentationType of ‘Surface3D’. Such clearance region indicates space that should not intersect with the ‘Body’ representation of other elements, though may intersect with the ‘Clearance’ representation of other elements. The particular use of clearance space may be for safety, maintenance, or other purpose.

For all representations, if a IfcDistributionControlElement occurrence is defined by a IfcDistributionControlElementType having a representation of the same identifier, then ‘MappedRepresentation’ should be used at the occurrence unless overridden.

If materials are defined, geometry of each representation (most typically the ‘Body’ representation) may be organized into shape aspects where styles may be derived by correlating IfcShapeAspect.Name to a corresponding material (IfcMaterialConstituent.Name).

Subclassed by Ifc4x1::IfcActuator, Ifc4x1::IfcAlarm, Ifc4x1::IfcController, Ifc4x1::IfcFlowInstrument, Ifc4x1::IfcProtectiveDeviceTrippingUnit, Ifc4x1::IfcSensor, Ifc4x1::IfcUnitaryControlElement

Public Functions

IfcTemplatedEntityList<IfcRelFlowControlElements>::ptr AssignedToFlowElement() const
const IfcParse::entity &declaration() const
IfcDistributionControlElement(IfcEntityInstanceData *e)
IfcDistributionControlElement(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4x1::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4x1::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag)

Public Static Functions

const IfcParse::entity &Class()