Class Ifc4x1::IfcRelDefinesByType

Nested Relationships

This class is a nested type of Struct Ifc4x1.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x1::IfcRelDefinesByType : public Ifc4x1::IfcRelDefines

The objectified relationship IfcRelDefinesByType defines the relationship between an object type and object occurrences. The IfcRelDefinesByType is a 1-to-N relationship, as it allows for the assignment of one type information to a single or to many objects. Those objects then share the same object type, and the property sets and properties assigned to the object type.

HISTORY New entity in IFC2x.

IFC2x4 CHANGE The attribute RelatedObjects had been demoted from the supertype IfcRelDefines to IfcRelDefinesByType.

Relationship use definition

The IfcRelDefinesByType links the object type definition with the object occurrence. Both may define properties by assigning an IfcPropertySet, including one or many subtypes of IfcProperty to either the object type or object occurrence, as shown in Figure 8. There are several scenarios to define the same property set on the object type definition and object occurrence side:

All properties for all object occurrences of a common object type have the same value - then only the object type definition has a property set assigned. All properties for all object occurrences are different, that is there are no common property values for the object type definition - then each of the object occurrence has a property set assigned. Some properties within the same property set have common values and are assigned to the object type definition and some are occurrence specific and assigned (with potentially different values) to the object occurrences - then:

The sum of all properties within a given property set applicable to an object occurrence is the union of properties assigned to the object type definition plus the properties assigned to the object occurrence. If the object occurrence has a property with the same IfcProperty.Name in an IfcPropertySet, as the corresponding object type definition, then the occurrence property value overrides the type property value.

Figure 8 — Type definition relationships

The following table provides an example of assigning

properties assigned to IfcWall properties assigned to IfcWallType resulting property value for individual wall

Pset_WallCommon Pset_WallCommon

-ExtendToStructure = TRUE


-ThermalTransmittance = 0.375 0.375

-ExtendToStructure = FALSE -ExtendToStructure = TRUE FALSE

Public Types

typedef IfcTemplatedEntityList<IfcRelDefinesByType> list

Public Functions

IfcTemplatedEntityList<::Ifc4x1::IfcObject>::ptr RelatedObjects() const
void setRelatedObjects(IfcTemplatedEntityList<::Ifc4x1::IfcObject>::ptr v)
::Ifc4x1::IfcTypeObject *RelatingType() const

Reference to the type (or style) information for that object or set of objects.

void setRelatingType(::Ifc4x1::IfcTypeObject *v)
const IfcParse::entity &declaration() const
IfcRelDefinesByType(IfcEntityInstanceData *e)
IfcRelDefinesByType(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, IfcTemplatedEntityList<::Ifc4x1::IfcObject>::ptr v5_RelatedObjects, ::Ifc4x1::IfcTypeObject *v6_RelatingType)

Public Static Functions

const IfcParse::entity &Class()