Defined in File Ifc4.h
IfcDistributionSystem: public Ifc4::IfcSystem¶
A distribution system is a network designed to receive, store, maintain, distribute, or control the flow of a distribution media. A common example is a heating hot water system that consists of a pump, a tank, and an interconnected piping system for distributing hot water to terminals.
HISTORY New entity in IFC 2x4.
The group IfcDistributionSystem defines the occurrence of a specialized system for use within the context of building services.
NOTE: For electrical power systems, IfcElectricalCircuit has been used for low-voltage (12-1000 V) power systems and has been deprecated in IFC2x4; IfcDistributionSystem with PredefinedType ‘ELECTRICAL’ should now be used instead.
Important functionalities for the description of a distribution system are derived from existing IFC entities:
From IfcGroup it inherits the inverse attribute IsGroupedBy, pointing to the relationship class IfcRelAssignsToGroup. This allows to group distribution elements (instances of IfcDistributionElement subtypes), and in special cases ports directly (instances of IfcDistributionPort).
From IfcObject it inherits the inverse attribute IsDecomposedBy pointing to the relationship class IfcRelAggregates. It provides the hierarchy between the separate (partial) distribution systems. For example, an electrical main circuit may be aggregated into branch circuits.
Property Set Use Definition:
The property sets relating to this entity 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 this entity are part of this IFC release:
Pset_DistributionSystemCommon: common property set for distribution system occurrences
Pset_DistributionSystemTypeElectrical: property set for electrical systems
Pset_DistributionSystemTypeVentilation: property set for ventilation systems
Assignment Use Definition:
For the most common case of an IfcDistributionElement subtype containing ports of a particular PredefinedType that all belong to the same distribution system, the IfcDistributionElement is assigned to the IfcDistributionSystem via the IfcRelAssignsToGroup relationship, where IfcDistributionPort’s are implied as part of the corresponding system based on their PredefinedType. An IfcDistributionElement may belong to multiple systems, however only one IfcDistributionSystem of a particular PredefinedType.
For rare cases where an IfcDistributionElement subtype contains ports of the same PredefinedType yet different ports belong to different systems, alternatively each IfcDistributionPort may be directly assigned to a single IfcDistributionSystem via the IfcRelAssignsToGroup relationship, where the PredefinedType must match. Such assignment indicates that the IfcDistributionSystem assigned from the IfcDistributionPort overrides any such system of the same PredefinedType assigned from the containing IfcDistributionElement, if any.
EXAMPLE: A gas-powered hot water heater may have three ports: GAS, DOMESTICCOLDWATER, and DOMESTICHOTWATER. The heater is a member of two systems (GAS and DOMESTICCOLDWATER), and hosts one system (DOMESTICHOTWATER) at the corresponding port.
Figure 150 illustrates a distribution system for an electrical circuit.
Figure 150 — Distribution system assignment
Subclassed by Ifc4::IfcDistributionCircuit
Whether the optional attribute LongName is defined for this IfcDistributionSystem.
Long name for a system, used for informal purposes. It should be used, if available, in conjunction with the inherited Name attribute.
NOTE In many scenarios the Name attribute refers to the short name or number of a distribution system or branch circuit, and the LongName refers to a descriptive name.
Whether the optional attribute PredefinedType is defined for this IfcDistributionSystem.
Predefined types of distribution systems.
IfcDistributionSystem(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, boost::optional<std::string> v6_LongName, boost::optional<::Ifc4::IfcDistributionSystemEnum::Value> v7_PredefinedType)¶