Class Ifc4x3_rc1::IfcProtectiveDevice

Nested Relationships

This class is a nested type of Struct Ifc4x3_rc1.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x3_rc1::IfcProtectiveDevice : public Ifc4x3_rc1::IfcFlowController

A protective device breaks an electrical circuit when a stated electric current that passes through it is exceeded. A protective device provides protection against electrical current only (not as a general protective device). It may be used to represent the complete set of elements including both the tripping unit and the breaking unit that provide the protection. This may be particularly useful at earlier stages of design where the approach to breaking the electrical supply may be determined but the method of tripping may not. Alternatively, this entity may be used to specifically represent the breaking unit alone (in which case the tripping unit will also be specifically identified). This entity is specific to dedicated protective devices and excludes electrical outlets that may have circuit protection.

HISTORY New entity in IFC2x4

Type Use Definition IfcProtectiveDevice defines the occurrence of any protective device; common information about protective device types is handled by IfcProtectiveDeviceType. The IfcProtectiveDeviceType (if present) may establish the common type name, usage (predefined type), properties, materials, ports, composition, assignments, and representations. The IfcProtectiveDeviceType is attached using the IfcRelDefinesByType objectified relationship and is accessible by the IsTypedBy inverse attribute. If the IfcProtectiveDeviceType has ports or aggregated elements, such objects are reflected at the IfcProtectiveDevice 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 IfcProtectiveDeviceType, defining the common property data for all occurrences of the same type. They are then accessible by the IsTypedBy inverse attribute pointing to IfcProtectiveDeviceType.HasPropertySets. If both are given, then the properties directly defined at IfcProtectiveDevice override the properties defined at IfcProtectiveDeviceType. Refer to the documentation at the supertype IfcFlowController and ancestors for inherited property set definitions. The following property set definitions are applicable to this entity: (All Types)

Pset_ProtectiveDeviceBreakerUnitI2TCurve (PSET_TYPEDRIVENOVERRIDE) Pset_ProtectiveDeviceBreakerUnitI2TFuseCurve (PSET_TYPEDRIVENOVERRIDE) Pset_ProtectiveDeviceBreakerUnitIPICurve (PSET_TYPEDRIVENOVERRIDE) Pset_ProtectiveDeviceBreakerUnitTypeMotorProtection (PSET_TYPEDRIVENOVERRIDE) Pset_ProtectiveDeviceTrippingCurve (PSET_TYPEDRIVENOVERRIDE) Pset_ProtectiveDeviceTypeCommon (PSET_TYPEDRIVENOVERRIDE)


Pset_ProtectiveDeviceBreakerUnitTypeMCB (PSET_TYPEDRIVENOVERRIDE) Pset_ProtectiveDeviceTypeCircuitBreaker (PSET_TYPEDRIVENOVERRIDE)


Pset_ProtectiveDeviceTypeEarthLeakageCircuitBreaker (PSET_TYPEDRIVENOVERRIDE)


Pset_ProtectiveDeviceTypeFuseDisconnector (PSET_TYPEDRIVENOVERRIDE)


Pset_ProtectiveDeviceTypeResidualCurrentCircuitBreaker (PSET_TYPEDRIVENOVERRIDE)


Pset_ProtectiveDeviceTypeResidualCurrentSwitch (PSET_TYPEDRIVENOVERRIDE)


Pset_ProtectiveDeviceTypeVaristor (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 IfcProtectiveDevice 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 IfcProtectiveDeviceType, defining the common attribute data for all occurrences of the same type. The following keywords for IfcMaterialConstituentSet.MaterialConstituents[n].Name shall be used:

Casing: Material from which the casing is constructed.

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


Line (ELECTRICAL, SINK): The supply line, typically connected from a slot in a distribution board. Load (ELECTRICAL, SOURCE): The load protected by this device, typically a cable connected to a device or the first junction box of a circuit.

Public Types

typedef IfcTemplatedEntityList<IfcProtectiveDevice> list

Public Functions

bool hasPredefinedType() const

Whether the optional attribute PredefinedType is defined for this IfcProtectiveDevice.

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

Public Static Functions

const IfcParse::entity &Class()