Class Ifc4::IfcDistributionSystem

Nested Relationships

This class is a nested type of Struct Ifc4.

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class Ifc4::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 IfcSystem it inherits the ability to couple the distribution system via IfcRelServicesBuildings to one or more IfcSpatialElement subtypes as necessary.

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.

Additionally, an IfcDistributionSystem may in turn be assigned to an IfcDistributionPort indicating the host or origination of the system using IfcRelAssignsToProduct.

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

Public Types

typedef IfcTemplatedEntityList<IfcDistributionSystem> list

Public Functions

bool hasLongName() const

Whether the optional attribute LongName is defined for this IfcDistributionSystem.

std::string LongName() const

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.

void setLongName(std::string v)
bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcDistributionSystem.

::Ifc4::IfcDistributionSystemEnum::Value PredefinedType() const

Predefined types of distribution systems.

void setPredefinedType(::Ifc4::IfcDistributionSystemEnum::Value v)
const IfcParse::entity &declaration() const
IfcDistributionSystem(IfcEntityInstanceData *e)
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)

Public Static Functions

const IfcParse::entity &Class()