The association relationship (IfcRelAssociates) refer to external sources of information (most notably a classification, library or document). There is no dependency implied by the association.
EXAMPLE: Further information may the given to the tank equipment (as subtype of IfcProduct) in terms of its classification and instruction documents, the source of the additional information is held external to the IFC project model.
Association relationships can the established to objects (occurrences) or to types (both object types, IfcTypeObject, or partial types, IfcPropertySetDefinition).
EXAMPLE 1: The classification information for the tank equipment may be associated to the IfcTypeProduct (subtype of IfcTypeObject), defining the specific information for all occurrences of that tank in the project. Therefore the association of the (e.g.) Uniclass notation 'L6814' may be associated by a subtype of IfcRelAssociates to the type information.
EXAMPLE 2: The classification information for a particular space within a building may the associated to the IfcSpace object (subtype of IfcObject), defining a particular occurrence of space. Therefore the association of the (e.g.) DIN notation 'HNF 1.5' may be associated by a subtype of IfcRelAssociates to the object.
The association relationship establishs a uni-directional association. The subtypes of IfcRelAssociates establishes the particular semantic meaning of the association relationship.
HISTORY: New entity in IFC Release 2x.
NOTE: Users should not instantiate the entity IfcRelAssociates from IFC2x Edition2 onwards. It will be changed into an ABSTRACT supertype in future releases of IFC.
# | Attribute | Type | Cardinality | Description | A |
---|---|---|---|---|---|
5 | RelatedObjects | IfcRoot | S[1:?] | Objects or Types, to which the external references or information is associated. | X |
Rule | Description |
---|---|
WR21 | The IfcRelAssociates relationship is restricted to associate information object, such as classification, document, library information, material, etc., to semantic object (occurrence objects based on IfcObject, and type objects, based on IfcTypeObject). |
# | Attribute | Type | Cardinality | Description | A |
---|---|---|---|---|---|
IfcRoot | |||||
1 | GlobalId | IfcGloballyUniqueId | [1:1] | Assignment of a globally unique identifier within the entire software world. | X |
2 | OwnerHistory | IfcOwnerHistory | [1:1] | Assignment of the information about the current ownership of that object, including owning actor, application, local identification and information captured about the recent changes of the object, NOTE: only the last modification in stored. | X |
3 | Name | IfcLabel | [0:1] | Optional name for use by the participating software systems or users. For some subtypes of IfcRoot the insertion of the Name attribute may be required. This would be enforced by a where rule. | X |
4 | Description | IfcText | [0:1] | Optional description, provided for exchanging informative comments. | X |
IfcRelationship | |||||
IfcRelAssociates | |||||
5 | RelatedObjects | IfcRoot | S[1:?] | Objects or Types, to which the external references or information is associated. | X |
<xs:element name="IfcRelAssociates" type="ifc:IfcRelAssociates" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
<xs:complexType name="IfcRelAssociates">
<xs:complexContent>
<xs:extension base="ifc:IfcRelationship">
<xs:sequence>
<xs:element name="RelatedObjects">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcRoot" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcRoot"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
ENTITY IfcRelAssociates
SUPERTYPE OF(IfcRelAssociatesMaterial)
SUBTYPE OF (IfcRelationship);
RelatedObjects : SET [1:?] OF IfcRoot;
WHERE
WR21 : SIZEOF(QUERY(temp <* RelatedObjects |
NOT(('IFCKERNEL.IFCOBJECTDEFINITION' IN TYPEOF(temp))
OR ('IFCKERNEL.IFCPROPERTYDEFINITION' IN TYPEOF(temp)))
)) = 0;
END_ENTITY;