4.3 Object Attributes

All entities having semantic significance derive from IfcRoot, where instances are identifiable within a data set using a compressed globally unique identifier (IFC-GUID). This identifier must never change during the lifetime of an object, which allows data to be merged, versioned, or referenced from other locations.

Resource-level instances (not deriving from IfcRoot) do not have any identity, such that two instances having identical state are considered equal. For example, if an object has coordinates described by an IfcCartesianPoint instance, another object with the same coordinates may have a separate instance of IfcCartesianPoint or share the same instance; such difference is a matter of data storage optimization and does not imply any semantic relationship. This also implies that non-rooted instances may only exist if referenced by at least one rooted instance through either a direct attribute or inverse attribute, or following a chain of attribute references on instances.

The distinction between rooted and non-rooted (resource-level) entities achieves several goals:

mvdXML Specification
<?xml version="1.0"?>
<ConceptTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" uuid="ccb45aa2-74e1-46e8-8e35-ca5e5d7cc9dd" name="Object Attributes" status="sample" applicableSchema="IFC4" applicableEntity="IfcRoot">
  <SubTemplates>
    <ConceptTemplate uuid="f7cb0a08-fee7-4cc0-85fe-43f6a6a0bce1" name="Software Identity" status="sample" applicableSchema="IFC4" applicableEntity="IfcRoot">
      <Rules>
        <AttributeRule RuleID="GUID" AttributeName="GlobalId">
          <EntityRules>
            <EntityRule EntityName="IfcGloballyUniqueId" />
          </EntityRules>
        </AttributeRule>
      </Rules>
    </ConceptTemplate>
    <ConceptTemplate uuid="b441c773-3fdc-42b6-a323-ad268dcd85f2" name="Revision Control" status="sample" applicableSchema="IFC4" applicableEntity="IfcRoot">
      <Rules>
        <AttributeRule AttributeName="OwnerHistory">
          <EntityRules>
            <EntityRule EntityName="IfcOwnerHistory">
              <AttributeRules>
                <AttributeRule AttributeName="OwningUser">
                  <EntityRules>
                    <EntityRule EntityName="IfcPersonAndOrganization">
                      <AttributeRules>
                        <AttributeRule AttributeName="ThePerson">
                          <EntityRules>
                            <EntityRule EntityName="IfcPerson">
                              <AttributeRules>
                                <AttributeRule AttributeName="Identification">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcIdentifier" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="FamilyName">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="GivenName">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="MiddleNames">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="PrefixTitles">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="SuffixTitles">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Roles">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcActorRole" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Addresses">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcTelecomAddress">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="Purpose">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcAddressTypeEnum" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="TelephoneNumbers">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="FacsimileNumbers">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="ElectronicMailAddresses">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="WWWHomePageURL">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcURIReference" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="MessagingIDs">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcURIReference" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Description">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcText" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="UserDefinedPurpose">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="TheOrganization">
                          <EntityRules>
                            <EntityRule EntityName="IfcOrganization">
                              <AttributeRules>
                                <AttributeRule AttributeName="Identification">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcIdentifier" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Description">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcText" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Roles">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcActorRole" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Addresses">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcAddress" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Roles">
                          <EntityRules>
                            <EntityRule EntityName="IfcActorRole">
                              <AttributeRules>
                                <AttributeRule AttributeName="Role">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcRoleEnum" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="UserDefinedRole">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Description">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcText" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="OwningApplication">
                  <EntityRules>
                    <EntityRule EntityName="IfcApplication">
                      <AttributeRules>
                        <AttributeRule AttributeName="ApplicationDeveloper" />
                        <AttributeRule AttributeName="Version" />
                        <AttributeRule AttributeName="ApplicationFullName" />
                        <AttributeRule AttributeName="ApplicationIdentifier" />
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="State">
                  <EntityRules>
                    <EntityRule EntityName="IfcStateEnum" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="ChangeAction">
                  <EntityRules>
                    <EntityRule EntityName="IfcChangeActionEnum" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="CreationDate">
                  <EntityRules>
                    <EntityRule EntityName="IfcTimeStamp" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="LastModifiedDate">
                  <EntityRules>
                    <EntityRule EntityName="IfcTimeStamp" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="LastModifyingUser">
                  <EntityRules>
                    <EntityRule EntityName="IfcPersonAndOrganization" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="LastModifyingApplication">
                  <EntityRules>
                    <EntityRule EntityName="IfcApplication">
                      <AttributeRules>
                        <AttributeRule AttributeName="ApplicationDeveloper" />
                        <AttributeRule AttributeName="Version" />
                        <AttributeRule AttributeName="ApplicationFullName" />
                        <AttributeRule AttributeName="ApplicationIdentifier" />
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </AttributeRules>
            </EntityRule>
          </EntityRules>
        </AttributeRule>
      </Rules>
    </ConceptTemplate>
    <ConceptTemplate uuid="c19ec186-9cfd-47fc-a4d4-9fb35008d04a" name="Object User Identity" status="sample" applicableSchema="IFC4" applicableEntity="IfcObject">
      <Rules>
        <AttributeRule RuleID="ObjectName" AttributeName="Name">
          <EntityRules>
            <EntityRule EntityName="IfcLabel" />
          </EntityRules>
        </AttributeRule>
        <AttributeRule RuleID="ObjectDescription" AttributeName="Description">
          <EntityRules>
            <EntityRule EntityName="IfcText" />
          </EntityRules>
        </AttributeRule>
        <AttributeRule AttributeName="IsTypedBy">
          <EntityRules>
            <EntityRule EntityName="IfcRelDefinesByType">
              <AttributeRules>
                <AttributeRule AttributeName="RelatingType">
                  <EntityRules>
                    <EntityRule EntityName="IfcTypeObject">
                      <AttributeRules>
                        <AttributeRule RuleID="TypeName" AttributeName="Name">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule RuleID="TypeDescription" AttributeName="Description">
                          <EntityRules>
                            <EntityRule EntityName="IfcText" />
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </AttributeRules>
            </EntityRule>
          </EntityRules>
        </AttributeRule>
      </Rules>
    </ConceptTemplate>
    <ConceptTemplate uuid="25248261-98df-4d0a-9364-5653575ca421" name="Object Predefined Type" status="sample" applicableSchema="IFC4" applicableEntity="IfcObject">
      <Rules>
        <AttributeRule RuleID="UserDefinedType" AttributeName="ObjectType">
          <EntityRules>
            <EntityRule EntityName="IfcLabel" />
          </EntityRules>
        </AttributeRule>
        <AttributeRule RuleID="PredefinedType" AttributeName="PredefinedType" />
        <AttributeRule AttributeName="IsTypedBy">
          <EntityRules>
            <EntityRule EntityName="IfcRelDefinesByType">
              <AttributeRules>
                <AttributeRule AttributeName="RelatingType">
                  <EntityRules>
                    <EntityRule EntityName="IfcTypeObject">
                      <AttributeRules>
                        <AttributeRule RuleID="TypeUserdefinedType" AttributeName="ElementType" />
                        <AttributeRule RuleID="TypePredefinedType" AttributeName="PredefinedType" />
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </AttributeRules>
            </EntityRule>
          </EntityRules>
        </AttributeRule>
      </Rules>
    </ConceptTemplate>
    <ConceptTemplate uuid="73e34d23-ed0d-4afd-a87d-4da2df34466a" name="Object Occurrence Attributes" status="sample" applicableSchema="IFC4" applicableEntity="IfcRoot">
      <SubTemplates>
        <ConceptTemplate uuid="037ad90d-348e-42c0-a85b-ad0d5383f598" name="Element Occurrence Attributes" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
          <Rules>
            <AttributeRule AttributeName="Tag">
              <EntityRules>
                <EntityRule EntityName="IfcIdentifier" />
              </EntityRules>
            </AttributeRule>
          </Rules>
          <SubTemplates>
            <ConceptTemplate uuid="1e5da429-cf7c-4f23-8b32-53ad98e238ad" name="Door Attributes" status="sample" applicableSchema="IFC4" applicableEntity="IfcDoor">
              <Rules>
                <AttributeRule AttributeName="Tag">
                  <EntityRules>
                    <EntityRule EntityName="IfcIdentifier" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule RuleID="OverallHeight" AttributeName="OverallHeight">
                  <EntityRules>
                    <EntityRule EntityName="IfcPositiveLengthMeasure" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule RuleID="OverallWidth" AttributeName="OverallWidth">
                  <EntityRules>
                    <EntityRule EntityName="IfcPositiveLengthMeasure" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule RuleID="OperationType" AttributeName="OperationType">
                  <EntityRules>
                    <EntityRule EntityName="IfcDoorTypeOperationEnum" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="UserDefinedOperationType">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="IsTypedBy">
                  <EntityRules>
                    <EntityRule EntityName="IfcRelDefinesByType">
                      <AttributeRules>
                        <AttributeRule AttributeName="RelatingType">
                          <EntityRules>
                            <EntityRule EntityName="IfcDoorType">
                              <AttributeRules>
                                <AttributeRule RuleID="TypeOperationType" AttributeName="OperationType">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDoorTypeOperationEnum" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="UserDefinedOperationType">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="HasPropertySets">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDoorLiningProperties">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="LiningDepth" />
                                        <AttributeRule AttributeName="LiningThickness" />
                                        <AttributeRule AttributeName="ThresholdDepth" />
                                        <AttributeRule AttributeName="ThresholdThickness" />
                                        <AttributeRule AttributeName="TransomThickness" />
                                        <AttributeRule AttributeName="TransomOffset" />
                                        <AttributeRule AttributeName="LiningOffset" />
                                        <AttributeRule AttributeName="ThresholdOffset" />
                                        <AttributeRule AttributeName="CasingThickness" />
                                        <AttributeRule AttributeName="CasingDepth" />
                                        <AttributeRule AttributeName="LiningToPanelOffsetX" />
                                        <AttributeRule AttributeName="LiningToPanelOffsetY" />
                                      </AttributeRules>
                                    </EntityRule>
                                    <EntityRule EntityName="IfcDoorPanelProperties">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="PanelDepth">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="PanelOperation">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcDoorPanelOperationEnum" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="PanelWidth">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="PanelPosition">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcDoorPanelPositionEnum" />
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
        <ConceptTemplate uuid="48afbff3-893b-4791-94dd-fface6eac658" name="Alignment Attributes" status="sample" applicableSchema="IFC4" applicableEntity="IfcAlignment">
          <Rules>
            <AttributeRule AttributeName="Axis">
              <EntityRules>
                <EntityRule EntityName="IfcAlignmentCurve">
                  <AttributeRules>
                    <AttributeRule AttributeName="Horizontal">
                      <EntityRules>
                        <EntityRule EntityName="IfcAlignment2DHorizontal">
                          <AttributeRules>
                            <AttributeRule AttributeName="Segments">
                              <EntityRules>
                                <EntityRule EntityName="IfcAlignment2DHorizontalSegment">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="CurveGeometry">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCircularArcSegment2D" />
                                        <EntityRule EntityName="IfcClothoidalArcSegment2D" />
                                        <EntityRule EntityName="IfcLineSegment2D" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="Vertical">
                      <EntityRules>
                        <EntityRule EntityName="IfcAlignment2DVertical">
                          <AttributeRules>
                            <AttributeRule AttributeName="Segments">
                              <EntityRules>
                                <EntityRule EntityName="IfcAlignment2DVerSegCircularArc" />
                                <EntityRule EntityName="IfcAlignment2DVerSegLine" />
                                <EntityRule EntityName="IfcAlignment2DVerSegParabolicArc" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
          </Rules>
        </ConceptTemplate>
      </SubTemplates>
    </ConceptTemplate>
  </SubTemplates>
</ConceptTemplate>

Link to this page  Link to this page