<?xml version="1.0"?>
<mvdXML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" uuid="e2ec62c3-28d5-4b80-8280-0950f08dce96" name="" status="sample" xsi:schemaLocation="http://www.buildingsmart-tech.org/mvd/XML/1.1 http://www.buildingsmart-tech.org/mvd/XML/1.1/mvdXML_V1.1_add1.xsd" xmlns="http://buildingsmart-tech.org/mvd/XML/1.1">
  <Templates>
    <ConceptTemplate uuid="805deb96-2684-4bc5-a9ad-3a29199dc023" name="Project Context" status="sample" applicableSchema="IFC4" applicableEntity="IfcContext">
      <Definitions>
        <Definition>
          <Body><![CDATA[<p>All project data sets shall contain a single <i>IfcProject</i> instance indicating overall context and a directory of objects contained within. The context definition may include:</p>
<ul>
 <li>the default units</li>
 <li>the geometric representation context for the shape representations</li>
 <li>the global positioning of the project coordinate system</li>
 <li>the reference to classification systems, or other external information sources, used</li>
 <li>the registry of object types and property templates used in the project context</li>
</ul>
]]></Body>
        </Definition>
      </Definitions>
      <Rules>
        <AttributeRule AttributeName="LongName">
          <EntityRules>
            <EntityRule EntityName="IfcLabel" />
          </EntityRules>
        </AttributeRule>
        <AttributeRule AttributeName="ObjectType">
          <EntityRules>
            <EntityRule EntityName="IfcLabel" />
          </EntityRules>
        </AttributeRule>
        <AttributeRule AttributeName="Phase">
          <EntityRules>
            <EntityRule EntityName="IfcLabel" />
          </EntityRules>
        </AttributeRule>
      </Rules>
      <SubTemplates>
        <ConceptTemplate uuid="ab1e2cfd-9f21-4f4a-b6af-cc26d84e45ac" name="Project Declaration" status="sample" applicableSchema="IFC4" applicableEntity="IfcContext">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>The project provides a directory of object types and property templates contained within using declaration relationships.</p>


<blockquote class="note">NOTE&nbsp; The actual object occurrences used within the context of a project, such as walls, beams, air outlets, are assigned to a spatial hierarchy that is linked to the project using the aggregation hierarchy. See concept <em>Spatial Decomposition</em> for linking a spatial structure to the project.</blockquote>

<blockquote class="history">HISTORY&nbsp; New concept template enabled by schema enhancements in IFC4.</blockquote>
]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule AttributeName="Declares">
              <EntityRules>
                <EntityRule EntityName="IfcRelDeclares">
                  <AttributeRules>
                    <AttributeRule RuleID="Type" AttributeName="RelatedDefinitions" />
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
            <AttributeRule AttributeName="Phase">
              <EntityRules>
                <EntityRule EntityName="IfcLabel" />
              </EntityRules>
            </AttributeRule>
            <AttributeRule AttributeName="ObjectType">
              <EntityRules>
                <EntityRule EntityName="IfcLabel" />
              </EntityRules>
            </AttributeRule>
            <AttributeRule AttributeName="LongName">
              <EntityRules>
                <EntityRule EntityName="IfcLabel" />
              </EntityRules>
            </AttributeRule>
          </Rules>
          <SubTemplates>
            <ConceptTemplate uuid="634e27f7-7edb-4e22-b8cc-25f1cdc765ce" name="Project Type Definitions" status="sample" applicableSchema="IFC4" applicableEntity="IfcContext">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Declaration of object types, such as element types utilized by the element occurrences within this project, within the context of the project. It provides a directory of all object types independently if and where they are used by object occurrences.</p>

<blockquote class="history">HISTORY&nbsp; New concept template enabled by schema enhancements in IFC4.</blockquote>
]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="Declares">
                  <EntityRules>
                    <EntityRule EntityName="IfcRelDeclares">
                      <AttributeRules>
                        <AttributeRule RuleID="RelatedTypes" AttributeName="RelatedDefinitions">
                          <EntityRules>
                            <EntityRule EntityName="IfcTypeObject" />
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Phase">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="ObjectType">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="LongName">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
            <ConceptTemplate uuid="d6eddceb-c102-4247-8ec0-24e7d4c5da9b" name="Project Template Definitions" status="sample" applicableSchema="IFC4" applicableEntity="IfcContext">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Declaration of property set templates, including the property templates that are used as property definitions. Such templates define the applicable properties, their names, descriptions, measure types and property type (single, enumerated, bounded  list or table value).</p> 

<blockquote class="history">HISTORY&nbsp; New concept template enabled by schema enhancements in IFC4.</blockquote>
]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="Declares">
                  <EntityRules>
                    <EntityRule EntityName="IfcRelDeclares">
                      <AttributeRules>
                        <AttributeRule RuleID="Type" AttributeName="RelatedDefinitions">
                          <EntityRules>
                            <EntityRule EntityName="IfcPropertySetTemplate">
                              <AttributeRules>
                                <AttributeRule AttributeName="TemplateType">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcPropertySetTemplateTypeEnum" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="ApplicableEntity">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcIdentifier" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="HasPropertyTemplates">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcSimplePropertyTemplate">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="TemplateType">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcSimplePropertyTemplateTypeEnum" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="PrimaryMeasureType">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="SecondaryMeasureType">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Enumerators">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcPropertyEnumeration">
                                              <AttributeRules>
                                                <AttributeRule AttributeName="Name">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcLabel" />
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="EnumerationValues">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcValue" />
                                                  </EntityRules>
                                                </AttributeRule>
                                              </AttributeRules>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="AccessState">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcStateEnum" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="PrimaryUnit">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcUnit" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="SecondaryUnit">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcUnit" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Expression">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Phase">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="ObjectType">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="LongName">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
        <ConceptTemplate uuid="f71de28e-4352-4f0d-9830-4fa13534a705" name="Project Library Information" status="sample" applicableSchema="IFC4" applicableEntity="IfcContext">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Projects may define libraries holding revisions of the project such as model servers or databases.  Multiple libraries may be referenced to indicate multiple revisions, multiple branches, and/or multiple servers.</p>

<p>If <i>IfcLibraryInformation</i> is provided, the project must be retrievable (provided the user has access permissions) using values as follows:</p>

<table class="gridtable">
<tr><th>IfcLibraryInformation</th><th>HTTP Header</th><th>Description</th></tr>
<tr><td>Location</td><td>/</td><td>fully qualified URL for retrieving (or updating) the project in the content type specified</td></tr>
<tr><td>Version</td><td>ETag</td><td>version stamp for qualifying a particular version, in a format specific to the server, which may be sorted by ordinal for comparison</td></tr>
<tr><td>VersionDate</td><td>Last-Modified</td><td>UTC date and time of file as recorded on server</td></tr>
<tr><td>Publisher</td><td>(username)</td><td>the account handle submitting a project revision is identified by the <i>Identification</i> of <i>IfcPerson</i></td></tr>
</table>

<p>The following standard HTTP operations may be supported by a server (in addition to any extended operations) for retrieving or updating such data given access rights:</p>
<table class="gridtable">
<tr><th>HTTP</th><th>Description</th></tr>
<tr><td>OPTIONS</td><td>Determine the available HTTP operations.</td></tr>
<tr><td>HEAD</td><td>Determine the latest version of a project without downloading it.</td></tr>
<tr><td>GET</td><td>Download the latest version of a project (or specific version with ETag provided).</td></tr>
<tr><td>PUT</td><td>Replace the project, clearing any version history. Servers may reject or otherwise modify such submitted content.</td></tr>
<tr><td>POST</td><td>Upload a new version of a project, appending to version history. Servers may reject, merge, or otherwise modify such submitted content.</td></tr>
<tr><td>DELETE</td><td>Delete the project.</td></tr>
</table>

<p>The following standard MIME types may be supported by a server (in addition to any proprietary formats) for uploading and downloading data for use in the HTTP Accept header:
<table class="gridtable">
<tr><th>MIME Type</th><th>Format</th></tr>
<tr><td>application/xml</td><td>IFC-XML</td></tr>
<tr><td>application/step</td><td>IFC-SPF</td></tr>
</table>




]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule AttributeName="HasAssociations">
              <EntityRules>
                <EntityRule EntityName="IfcRelAssociatesLibrary">
                  <AttributeRules>
                    <AttributeRule AttributeName="RelatingLibrary">
                      <EntityRules>
                        <EntityRule EntityName="IfcLibraryInformation">
                          <AttributeRules>
                            <AttributeRule AttributeName="Version">
                              <EntityRules>
                                <EntityRule EntityName="IfcLabel" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Publisher">
                              <EntityRules>
                                <EntityRule EntityName="IfcPersonAndOrganization">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ThePerson">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcPerson">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="Identification">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcIdentifier" />
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="VersionDate">
                              <EntityRules>
                                <EntityRule EntityName="IfcDateTime" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Location">
                              <EntityRules>
                                <EntityRule EntityName="IfcURIReference" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Description">
                              <EntityRules>
                                <EntityRule EntityName="IfcText" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name">
                              <EntityRules>
                                <EntityRule EntityName="IfcLabel" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
            <AttributeRule AttributeName="Phase">
              <EntityRules>
                <EntityRule EntityName="IfcLabel" />
              </EntityRules>
            </AttributeRule>
            <AttributeRule AttributeName="ObjectType">
              <EntityRules>
                <EntityRule EntityName="IfcLabel" />
              </EntityRules>
            </AttributeRule>
            <AttributeRule AttributeName="LongName">
              <EntityRules>
                <EntityRule EntityName="IfcLabel" />
              </EntityRules>
            </AttributeRule>
          </Rules>
        </ConceptTemplate>
      </SubTemplates>
    </ConceptTemplate>
    <ConceptTemplate uuid="33e0be15-e301-4858-9f4b-18b2eb5488ba" name="Object Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
      <Definitions>
        <Definition>
          <Body><![CDATA[<p>The concept templates of <em>Object Definition</em> provides the means to define an object occurrence by its object type and attached property and quantity sets.</p>]]></Body>
        </Definition>
      </Definitions>
      <SubTemplates>
        <ConceptTemplate uuid="36984334-3ac8-4e59-85a6-f68d65e379c7" name="Property Sets" status="sample" applicableSchema="IFC4" applicableEntity="IfcRoot">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>The concept template <em>Property Sets</em> describes how sets of properties (usually defined by a name, value, unit triple) are associated to objects or object types.</p>]]></Body>
            </Definition>
          </Definitions>
          <SubTemplates>
            <ConceptTemplate uuid="4be3312a-3199-492e-b204-cac2229a9ade" name="Property Sets for Types" status="sample" applicableSchema="IFC4" applicableEntity="IfcTypeObject">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The concept template <em>Property Sets for Objects</em> describes how an object type can be related to a single or multiple property sets. A property set  contains a single or multiple properties. The data types of an individual property are single value, enumerated value, bounded value, table value, reference value, list value, and combination of property occurrences.</p>
<p>The property values assigned to an object type apply equally to all occurrences of this object type, see concept <em>Object Typing</em>, unless it is overriden by a property with same name within a property set with the same name at an individual object occurrence.</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="HasPropertySets">
                  <EntityRules>
                    <EntityRule EntityName="IfcPropertySet">
                      <AttributeRules>
                        <AttributeRule RuleID="PsetName" AttributeName="Name" />
                        <AttributeRule AttributeName="HasProperties">
                          <EntityRules>
                            <EntityRule EntityName="IfcPropertySingleValue">
                              <References>
                                <Template ref="6655f6d0-29a8-47b8-8f3d-c9fce9c9a620" />
                              </References>
                            </EntityRule>
                            <EntityRule EntityName="IfcPropertyBoundedValue">
                              <References>
                                <Template ref="3d67a2d2-761d-44d9-a09e-b7fbb1fa5632" />
                              </References>
                            </EntityRule>
                            <EntityRule EntityName="IfcPropertyEnumeratedValue">
                              <References>
                                <Template ref="c148a099-c351-43a8-9266-5f3de0b45a95" />
                              </References>
                            </EntityRule>
                            <EntityRule EntityName="IfcPropertyListValue">
                              <References>
                                <Template ref="8e10b688-9179-4e3a-8db2-6abcaafe952d" />
                              </References>
                            </EntityRule>
                            <EntityRule EntityName="IfcPropertyTableValue">
                              <References>
                                <Template ref="35c947b0-6abc-4b13-8ec7-696ef2041721" />
                              </References>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
      </SubTemplates>
    </ConceptTemplate>
    <ConceptTemplate uuid="ccb45aa2-74e1-46e8-8e35-ca5e5d7cc9dd" name="Object Attributes" status="sample" applicableSchema="IFC4" applicableEntity="IfcRoot">
      <Definitions>
        <Definition>
          <Body><![CDATA[<p>

All entities having semantic significance derive from <i>IfcRoot</i>, 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.

</p>


<p>

Resource-level instances (not deriving from <i>IfcRoot</i>) 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

 <i>IfcCartesianPoint</i> instance, another object with the same coordinates may have a separate instance of

 <i>IfcCartesianPoint</i> 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.

</p>


<p>

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

</p>


<ul class="ref">


 <li>File size may be reduced by interning (sharing) non-rooted data instances;

</li>


 <li>Database retrieval may be more efficient by storing non-rooted data local to rooted data

 instances;

</li>


 <li>Storage size may be reduced by avoiding IFC-GUID storage for items not requiring direct

 retrieval;

</li>


 <li>Comparisons of differences may be done at a higher level where the context of such change is

 apparent;

</li>


 <li>Implementations may treat non-rooted data instances as immutable for efficiency or simplified

 usage.

</li>


</ul>

]]></Body>
        </Definition>
      </Definitions>
      <SubTemplates>
        <ConceptTemplate uuid="b441c773-3fdc-42b6-a323-ad268dcd85f2" name="Revision Control" status="sample" applicableSchema="IFC4" applicableEntity="IfcRoot">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>

While objects may reflect a final state, they may also be continually revised over the course of a project

 lifecycle and reflect transient state. For scenarios of multiple users making updates to the same information,

 there is a concept of local copies of information based upon a shared repository supporting multiple users.

 Such shared repository is often referred to as a <i>model server</i>. A model server is similar in concept to a

 document revision server, but is able to identify changes declared on a per-object basis rather than inferring

 changes from differences in text. A model server has a concept of revisions on a per-project basis, where each

  revision consists of a set of changes to contained objects by a particular user at a particular time.

</p>

      

<p>

To support a model server scenario, each object may be marked with a <i>change action</i> indicating the object

 was added, modified, deleted, or has no change since the project was retrieved from the server at a particular

 revision sequence. Given an object's identity (IFC-GUID) and change action, the state of the object may be

 merged when submitted to a model server. An object is considered modified when any of its direct attributes change, attributes on a referenced resource

 definition (any entity not deriving from <i>IfcRoot</i>) change, items are added or removed from sets, or items

 are added, removed, or reordered within lists.</p>



<p>

For cases when multiple users make conflicting changes to the same objects, users may choose to keep their own

 changes, accept changes from others, merge both changes, or a combination thereof upon submitting to a server.

 Alternatively, to avoid such merge scenario and coordinate work, objects may be locked such that a particular

 user has exclusive access to read and/or write a particular object at the current time.</p>



<p>Project libraries may also be retrieved from model servers having particular revision, and potentially

 different server URI than the referencing Project. As a project may include multiple revisions of the same

 project library (a common scenario when multiple users are involved using libraries revised by others), the

 IfcRoot.ObjectIdentifier IFC-GUID is only valid within the scope of the referencing project, and a separate

 <i>library reference</i> identifies a project library based object within its originating model server.</p>

<p>

Finally, objects may also carry informational attributes indicating when an object was created, who, when, and

 what application was used to last modify an object, and who currently owns the object, potentially having

 exclusive use according to its lock state.

</p>
]]></Body>
            </Definition>
          </Definitions>
          <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>
      </SubTemplates>
    </ConceptTemplate>
    <ConceptTemplate uuid="4b385464-b99a-42bc-a17a-a0a647a1ab5b" name="Association" status="sample" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
      <Definitions>
        <Definition>
          <Body><![CDATA[]]></Body>
        </Definition>
      </Definitions>
      <SubTemplates>
        <ConceptTemplate uuid="3d761f09-23a2-4c01-8bc5-8762aa92bc23" name="Library Association" status="sample" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>
The concept <em>Library Association</em> describes how object and object types can have associated library entities indicating
 the source of data such as from a model server or product library, or simply enriching the data with more details.
 Libraries may be referenced in their entirety from projects or project libraries indicating the master source and version of data. Contents within libraries may be referenced from any object, type object, property, and some resource schema entities within a project or project library.
</p>]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule AttributeName="HasAssociations">
              <EntityRules>
                <EntityRule EntityName="IfcRelAssociatesLibrary">
                  <AttributeRules>
                    <AttributeRule RuleID="RelatingLibrary" AttributeName="RelatingLibrary">
                      <EntityRules>
                        <EntityRule EntityName="IfcLibraryReference">
                          <AttributeRules>
                            <AttributeRule AttributeName="Location">
                              <EntityRules>
                                <EntityRule EntityName="IfcURIReference" />
                              </EntityRules>
                            </AttributeRule>
                            <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="Language">
                              <EntityRules>
                                <EntityRule EntityName="IfcLanguageId" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="ReferencedLibrary">
                              <EntityRules>
                                <EntityRule EntityName="IfcLibraryInformation" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
          </Rules>
        </ConceptTemplate>
        <ConceptTemplate uuid="ea2a63be-fd0d-426d-863b-52c3970ca585" name="Material Association" status="sample" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>

Any product or product type can have associated materials indicating the physical composition of an object.

</p>     

<blockquote class="example">EXAMPLE&nbsp; 

An object can be comprised of a single material or a set of materials with a particular layout. Several

 examples include:


<ul>

        
<li class="small">a slab may have an associated layer of concrete;

 </li>

        
<li class="small">a beam may have an associated I-Shape profile of steel;</li>

        
<li class="small">a door may have associated constituents for framing and glazing;</li>
<li class="small">a port may have an associated profile and/or material flowing through it such as hot water.

</li>

      
</ul>



</blockquote>

<p>Materials can have representations for surface styles indicating colors, textures, and light reflectance for 3D

 rendering. Materials can have representations for fill styles indicating colors, tiles, and hatch patterns for

 2D rendering. Materials can have properties such as density, elasticity, thermal resistance, and others as

 defined in this specification. Materials can also be classified according to a referenced industry standard.

</p>

 



<blockquote class="example">EXAMPLE&nbsp; Material information can also be given at object type, defining the common material data for all
 occurrences of the same type. It is then accessible by the inverse 
<em>IsTypedBy</em> relationship pointing
 via <em>HasAssociations</em> and via
 <em>IfcRelAssociatesMaterial.RelatingMaterial</em> to
the material information. If both are 
given, then the material directly assigned to object occurrence 
overrides the material assigned to object type.
</blockquote>]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule AttributeName="HasAssociations">
              <EntityRules>
                <EntityRule EntityName="IfcRelAssociatesMaterial">
                  <AttributeRules>
                    <AttributeRule AttributeName="RelatingMaterial" />
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
          </Rules>
          <SubTemplates>
            <ConceptTemplate uuid="5f39a814-44a0-4fb3-8dc6-ddaa0560fc54" name="Material Single" status="sample" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Materials are directly associated with products and product types to indicate a uniform material for the entire object.
</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="HasAssociations">
                  <EntityRules>
                    <EntityRule EntityName="IfcRelAssociatesMaterial">
                      <AttributeRules>
                        <AttributeRule AttributeName="RelatingMaterial">
                          <EntityRules>
                            <EntityRule EntityName="IfcMaterial">
                              <References>
                                <Template ref="5986b61a-b79f-44e0-a93f-9fddf470a4e1" />
                              </References>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
            <ConceptTemplate uuid="dfb5b3a9-50e3-46e2-8518-1f03e7cfd886" name="Material Layer Set" status="sample" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Material layer sets are associated with products or product types to indicate a parametric specification of layers having specified thickness filling a boundary defined on the product, or the occurrences of the product type.  Examples of such products or product types are slabs, walls, and plates.
</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="HasAssociations">
                  <EntityRules>
                    <EntityRule EntityName="IfcRelAssociatesMaterial">
                      <AttributeRules>
                        <AttributeRule AttributeName="RelatingMaterial">
                          <EntityRules>
                            <EntityRule EntityName="IfcMaterialLayerSet">
                              <AttributeRules>
                                <AttributeRule RuleID="HasLayer" AttributeName="MaterialLayers">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcMaterialLayer">
                                      <AttributeRules>
                                        <AttributeRule RuleID="LayerName" AttributeName="Name">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Description">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcText" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Material">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcMaterial">
                                              <References>
                                                <Template ref="5986b61a-b79f-44e0-a93f-9fddf470a4e1" />
                                              </References>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="LayerThickness" AttributeName="LayerThickness">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="AirGap" AttributeName="IsVentilated">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLogical" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Category" AttributeName="Category">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Priority">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="LayerSetName">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Description">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcText" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
            <ConceptTemplate uuid="6d5fb86f-3f2d-49fb-9528-077855ddcc47" name="Material Layer Set Usage" status="sample" applicableSchema="IFC4" applicableEntity="IfcProduct">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Material layer set usage defines layout at occurrences to indicate a direction and offset from the 'Axis' reference curve, and a reference extent such as for a default wall height.
</p>

<p>The concept of <em>Material Layer Set Usage</em> is only applicable to certain product subtypes, refered to as "Standard case" elements. It supports a certain range of parametric definitions for those element configurations.</p>

<p>The material of those standard case elements is defined by
<em>IfcMaterialLayerSetUsage</em> and is attached by the
 <em>IfcRelAssociatesMaterial</em><em>.RelatingMaterial</em>. It is
 accessible by the inverse <em>HasAssociations</em> relationship. Standard case elements with multiple layers can be represented by refering to several 
<em>IfcMaterialLayer</em>'s within the <em>IfcMaterialLayerSet</em>
 that is referenced from the <em>IfcMaterialLayerUsage</em>.</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="HasAssociations">
                  <EntityRules>
                    <EntityRule EntityName="IfcRelAssociatesMaterial">
                      <AttributeRules>
                        <AttributeRule AttributeName="RelatingMaterial">
                          <EntityRules>
                            <EntityRule EntityName="IfcMaterialLayerSetUsage">
                              <AttributeRules>
                                <AttributeRule AttributeName="ForLayerSet">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcMaterialLayerSet">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="MaterialLayers">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcMaterialLayer">
                                              <AttributeRules>
                                                <AttributeRule RuleID="Name" AttributeName="Name" />
                                                <AttributeRule AttributeName="Material">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcMaterial">
                                                      <AttributeRules>
                                                        <AttributeRule AttributeName="HasRepresentation">
                                                          <EntityRules>
                                                            <EntityRule EntityName="IfcMaterialDefinitionRepresentation">
                                                              <References>
                                                                <Template ref="6e4e5d36-ea3c-46d5-a490-99abffb4e317" />
                                                              </References>
                                                            </EntityRule>
                                                          </EntityRules>
                                                        </AttributeRule>
                                                      </AttributeRules>
                                                    </EntityRule>
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="LayerThickness">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                                                  </EntityRules>
                                                </AttributeRule>
                                              </AttributeRules>
                                            </EntityRule>
                                            <EntityRule EntityName="IfcMaterialLayerWithOffsets">
                                              <AttributeRules>
                                                <AttributeRule AttributeName="OffsetDirection">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcLayerSetDirectionEnum" />
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="OffsetValues">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcLengthMeasure" />
                                                  </EntityRules>
                                                </AttributeRule>
                                              </AttributeRules>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="LayerSetDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLayerSetDirectionEnum" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="DirectionSense">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirectionSenseEnum" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="OffsetFromReferenceLine">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLengthMeasure" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="ReferenceExtent">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcPositiveLengthMeasure" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
            <ConceptTemplate uuid="427ac055-2a71-42c2-a423-71689fa75c59" name="Material Profile Set" status="sample" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<p>Material profile sets are associated with products or product types where materials are placed in cross-sections of specified dimensions following a path defined at occurrences of the type.  Examples of such products are beams, columns, members, reinforcing, footings, piles, pipe segments, duct segments, and cable segments. 
</p>
<blockquote class="example">EXAMPLE&nbsp; 
Material profile sets can be provided at the 
<em>IfcColumnType</em>, defining the common material information for all 
occurrences of the same column type. It is then accessible by the 
inverse <em>IsTypedBy</em> 
relationship at <em>IfcColumn</em> pointing to
 <em>IfcColumnType</em> having the <em>HasAssociations</em> inverse relationship to 
<em>IfcRelAssociatesMaterial</em> with <em>RelatingMaterial</em> refering to the 
<em>IfcMaterialProfileSet</em>>. If an individual material association is provide at the  
<em>IfcColumn</em> and the 
<em>IfcColumnType</em>, then the material directly assigned to <em>IfcColumn</em> 
overrides the material assigned to <em>IfcColumnType</em>.</blockquote>
]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="HasAssociations">
                  <EntityRules>
                    <EntityRule EntityName="IfcRelAssociatesMaterial">
                      <AttributeRules>
                        <AttributeRule AttributeName="RelatingMaterial">
                          <EntityRules>
                            <EntityRule EntityName="IfcMaterialProfileSet">
                              <AttributeRules>
                                <AttributeRule RuleID="HasProfiles" AttributeName="MaterialProfiles">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcMaterialProfile">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="Name">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Description">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcText" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Material">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcMaterial">
                                              <References>
                                                <Template ref="5986b61a-b79f-44e0-a93f-9fddf470a4e1" />
                                              </References>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Profile">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcProfileDef">
                                              <AttributeRules>
                                                <AttributeRule AttributeName="ProfileType">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcProfileTypeEnum" />
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule RuleID="ProfileName" AttributeName="ProfileName">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcLabel" />
                                                  </EntityRules>
                                                </AttributeRule>
                                              </AttributeRules>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Category" AttributeName="Category">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Priority">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Description">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcText" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
            <ConceptTemplate uuid="6aa01429-b566-4b36-875a-3162088a9831" name="Material Profile Set Usage" status="sample" applicableSchema="IFC4" applicableEntity="IfcProduct">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Material profile set usage defines layout at occurrences to indicate the offset from the 'Axis' reference curve according to cardinal point, and a reference extent such as for a default column height.
</p>

<p>The concept of <em>Material Profile Set Usage</em> is only applicable to certain product subtypes, refered to as "standard case" elements. It supports a certain range of parametric definitions for those element configurations.</p>

<p>The material of those standard case elements is defined by
<em>IfcMaterialProfileSetUsage</em> and is attached by the
 <em>IfcRelAssociatesMaterial</em><em>.RelatingMaterial</em>. It is
 accessible by the inverse <em>HasAssociations</em> relationship. Standard case elements with composite profiles can be represented by refering to several 
<em>IfcMaterialProfile</em>'s within the <em>IfcMaterialProfileSet</em>
 that is referenced from the <em>IfcMaterialProfileSetUsage</em>.</p>
]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="HasAssociations">
                  <EntityRules>
                    <EntityRule EntityName="IfcRelAssociatesMaterial">
                      <AttributeRules>
                        <AttributeRule AttributeName="RelatingMaterial">
                          <EntityRules>
                            <EntityRule EntityName="IfcMaterialProfileSetUsage">
                              <AttributeRules>
                                <AttributeRule AttributeName="ForProfileSet">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcMaterialProfileSet">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="MaterialProfiles">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcMaterialProfile">
                                              <AttributeRules>
                                                <AttributeRule RuleID="Name" AttributeName="Name" />
                                                <AttributeRule AttributeName="Material">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcMaterial">
                                                      <AttributeRules>
                                                        <AttributeRule AttributeName="HasRepresentation">
                                                          <EntityRules>
                                                            <EntityRule EntityName="IfcMaterialDefinitionRepresentation">
                                                              <References>
                                                                <Template ref="6e4e5d36-ea3c-46d5-a490-99abffb4e317" />
                                                              </References>
                                                            </EntityRule>
                                                          </EntityRules>
                                                        </AttributeRule>
                                                      </AttributeRules>
                                                    </EntityRule>
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="Profile">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcProfileDef" />
                                                  </EntityRules>
                                                </AttributeRule>
                                              </AttributeRules>
                                            </EntityRule>
                                            <EntityRule EntityName="IfcMaterialProfileWithOffsets">
                                              <AttributeRules>
                                                <AttributeRule AttributeName="OffsetValues">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcLengthMeasure" />
                                                  </EntityRules>
                                                </AttributeRule>
                                              </AttributeRules>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="CardinalPoint">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCardinalPointReference" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="ReferenceExtent">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcPositiveLengthMeasure" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcMaterialProfileSetUsageTapering">
                              <AttributeRules>
                                <AttributeRule AttributeName="ForProfileEndSet">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcMaterialProfileSet" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="CardinalEndPoint">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCardinalPointReference" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
            <ConceptTemplate uuid="d96f7f7d-e742-4db8-9b5d-18a36a6df884" name="Material Constituent Set" status="sample" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Material constituents are associated with products or product types where materials are placed arbitrarily (unlike 1D material profiles or 2D material layers). 
The mapping of materials to geometry may be accomplished using <i>IfcShapeAspect</i>.
</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="HasAssociations">
                  <EntityRules>
                    <EntityRule EntityName="IfcRelAssociatesMaterial">
                      <AttributeRules>
                        <AttributeRule AttributeName="RelatingMaterial">
                          <EntityRules>
                            <EntityRule EntityName="IfcMaterialConstituentSet">
                              <AttributeRules>
                                <AttributeRule AttributeName="MaterialConstituents">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcMaterialConstituent">
                                      <AttributeRules>
                                        <AttributeRule RuleID="ConstituentName" AttributeName="Name">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Description">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcText" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Material">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcMaterial">
                                              <References>
                                                <Template ref="5986b61a-b79f-44e0-a93f-9fddf470a4e1" />
                                              </References>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Category">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="Fraction">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Description">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcText" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
      </SubTemplates>
    </ConceptTemplate>
    <ConceptTemplate uuid="5098cd13-bf4b-473a-a846-a60f69e9b738" name="Object Composition" status="sample" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
      <Definitions>
        <Definition>
          <Body><![CDATA[
<p>Objects may be composed into parts to indicate levels of
 detail, such as a building having multiple storeys, a
 framed wall having studs, or a task having subtasks.
 Composition may form a hierarchy of multiple levels, where
 an object must have a single parent, or if a top-level
 object then declared within the single project or a project library.</p>          
        
      ]]></Body>
        </Definition>
      </Definitions>
      <SubTemplates>
        <ConceptTemplate uuid="d1e6b86e-7658-443c-b708-86b7dd8b12f4" name="Nesting" status="sample" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>A nesting indicates an external ordered part composition relationship between the hosting structure, referred to as the "host", and the attached components, referred to as the "hosted elements". The concept of nesting is used in various ways. Examples are:</p>



<ul>


<li>Nesting is used on product elements to indicate external connectable parts such as faucets mounted on a sink, or switches within a junction box.</li>






<li>Nesting is used on control objects to indicate specification hierarchies.</li>




<li>Nesting is used on process objects to indicate subordinate processes which may occur in parallel or in series.</li>



<li>Nesting is used on resource objects to indicate subordinate resource allocations which may occur in parallel or in series.</li>

</ul>


<p>Nesting is a bi-directional relationship, the relationship from the hosting structure to its attached components is called Nesting, and the relationship from the components to their containing structure is called Hosting.</p>]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule AttributeName="IsNestedBy">
              <EntityRules>
                <EntityRule EntityName="IfcRelNests" />
              </EntityRules>
            </AttributeRule>
          </Rules>
          <SubTemplates>
            <ConceptTemplate uuid="bafc93b7-d0e2-42d8-84cf-5da20ee1480a" name="Port Nesting" status="sample" applicableSchema="IFC4" applicableEntity="IfcDistributionElement">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Ports indicate possible connections to other objects according to specified system types, flow direction, and connection properties.  Ports are typically connected between devices via cables, pipes, or ducts.</p>


<p>Ports may have placement defined indicating the position and outward orientation of the port relative to the product or product type. Ports may also have material profile sets defined indicating the flow area and connection enclosure.</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule RuleID="PredefinedType" AttributeName="PredefinedType" />
                <AttributeRule AttributeName="IsNestedBy">
                  <EntityRules>
                    <EntityRule EntityName="IfcRelNests">
                      <AttributeRules>
                        <AttributeRule AttributeName="RelatedObjects">
                          <EntityRules>
                            <EntityRule EntityName="IfcDistributionPort">
                              <AttributeRules>
                                <AttributeRule RuleID="PortName" AttributeName="Name">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Flow" AttributeName="FlowDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcFlowDirectionEnum" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="SystemType" AttributeName="SystemType">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDistributionSystemEnum" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="ObjectPlacement">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLocalPlacement">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="RelativePlacement">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcAxis2Placement3D">
                                              <AttributeRules>
                                                <AttributeRule AttributeName="Location">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcCartesianPoint" />
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="Axis">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcDirection" />
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="RefDirection">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcDirection" />
                                                  </EntityRules>
                                                </AttributeRule>
                                              </AttributeRules>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="IsDeclaredBy" />
                                <AttributeRule AttributeName="PredefinedType">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDistributionPortTypeEnum" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
        <ConceptTemplate uuid="9fcc5a66-22a7-41ac-9328-31759845d152" name="Type Element Aggregation" status="sample" applicableSchema="IFC4" applicableEntity="IfcElementType">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Product types may define aggregated components.</p>

<p>Placement of such components may be explicitly defined using <i>IfcLocalPlacement</i> relative to the enclosing <i>IfcElementType</i>, or implicitly defined if <i>IfcElement</i>.<i>ObjectPlacement</i> is null.</p>

<p>If an occurrence is instantiated of the given <i>IfcElementType</i>, then such occurrence must include equivalent aggregated elements with names corresponding to those within the element type.</p>]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule RuleID="PredefinedType" AttributeName="PredefinedType" />
            <AttributeRule AttributeName="IsDecomposedBy">
              <EntityRules>
                <EntityRule EntityName="IfcRelAggregates">
                  <AttributeRules>
                    <AttributeRule RuleID="RelatedObjects" AttributeName="RelatedObjects">
                      <EntityRules>
                        <EntityRule EntityName="IfcElement" />
                      </EntityRules>
                    </AttributeRule>
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
            <AttributeRule AttributeName="Decomposes" />
          </Rules>
        </ConceptTemplate>
        <ConceptTemplate uuid="14891e19-2eaa-4641-8913-629bb9a60801" name="Element Projecting" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
          <Rules>
            <AttributeRule AttributeName="HasProjections">
              <EntityRules>
                <EntityRule EntityName="IfcRelProjectsElement">
                  <AttributeRules>
                    <AttributeRule AttributeName="RelatedFeatureElement">
                      <EntityRules>
                        <EntityRule EntityName="IfcProjectionElement">
                          <AttributeRules>
                            <AttributeRule AttributeName="PredefinedType">
                              <EntityRules>
                                <EntityRule EntityName="IfcProjectionElementTypeEnum" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
          </Rules>
        </ConceptTemplate>
      </SubTemplates>
    </ConceptTemplate>
    <ConceptTemplate uuid="252a5fa6-cc5b-4d30-bd0c-35e22e336499" name="Object Connectivity" status="sample" applicableSchema="IFC4" applicableEntity="IfcObject">
      <Definitions>
        <Definition>
          <Body><![CDATA[<p class="std">
        Objects may participate in various connectivity
        relationships with other objects.
      </p>
]]></Body>
        </Definition>
      </Definitions>
      <SubTemplates>
        <ConceptTemplate uuid="17e42301-4a59-4945-b62b-2c64f6ca6c12" name="Element Connectivity" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Elements may be connected to other elements, where the <i>RelatingElement</i> is of equal or higher priority, is generally constructed first, and/or anchors the <i>RelatedElement</i>.</p>]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule AttributeName="ConnectedFrom" />
            <AttributeRule AttributeName="ConnectedTo" />
          </Rules>
          <SubTemplates>
            <ConceptTemplate uuid="50170395-87c6-492e-a6fc-9f5f840b114f" name="Path Connectivity" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Elements based on an 'Axis' representation such as walls, beams, and columns use a path connectivity relationship to indicate parameters for the connection, indicating which side takes precedence for material layers or profiles.</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="ConnectedFrom">
                  <EntityRules>
                    <EntityRule EntityName="IfcRelConnectsPathElements">
                      <AttributeRules>
                        <AttributeRule RuleID="RelatedElement" AttributeName="RelatedElement">
                          <EntityRules>
                            <EntityRule EntityName="IfcElement" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ConnectionGeometry">
                          <EntityRules>
                            <EntityRule EntityName="IfcConnectionCurveGeometry">
                              <AttributeRules>
                                <AttributeRule AttributeName="CurveOnRelatingElement">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcPolyline">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="Points">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcCartesianPoint" />
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="CurveOnRelatedElement">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcPolyline">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="Points">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcCartesianPoint" />
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="RelatingPriorities">
                          <EntityRules>
                            <EntityRule EntityName="IfcInteger" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="RelatedPriorities">
                          <EntityRules>
                            <EntityRule EntityName="IfcInteger" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="RelatedConnectionType">
                          <EntityRules>
                            <EntityRule EntityName="IfcConnectionTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="RelatingConnectionType">
                          <EntityRules>
                            <EntityRule EntityName="IfcConnectionTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="ConnectedTo" />
              </Rules>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
        <ConceptTemplate uuid="1e6182fc-1f47-44d3-9b78-17556500f386" name="Element Interference" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
          <Rules>
            <AttributeRule AttributeName="IsInterferedByElements">
              <EntityRules>
                <EntityRule EntityName="IfcRelInterferesElements">
                  <AttributeRules>
                    <AttributeRule AttributeName="RelatingElement">
                      <EntityRules>
                        <EntityRule EntityName="IfcElement" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="InterferenceGeometry">
                      <EntityRules>
                        <EntityRule EntityName="IfcConnectionVolumeGeometry">
                          <AttributeRules>
                            <AttributeRule AttributeName="VolumeOnRelatingElement">
                              <EntityRules>
                                <EntityRule EntityName="IfcSolidModel" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="InterferenceType">
                      <EntityRules>
                        <EntityRule EntityName="IfcIdentifier" />
                      </EntityRules>
                    </AttributeRule>
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
          </Rules>
        </ConceptTemplate>
        <ConceptTemplate uuid="d1d8208b-51e5-4a8f-92ba-e3a2ea2bcb9c" name="Control Flow" status="sample" applicableSchema="IFC4" applicableEntity="IfcDistributionControlElement">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Control elements (such as sensors) that monitor or control behavior of flow elements (such as valves) use this relationship to indicate control flow logical behavior.</p>]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule AttributeName="AssignedToFlowElement">
              <EntityRules>
                <EntityRule EntityName="IfcRelFlowControlElements">
                  <AttributeRules>
                    <AttributeRule RuleID="Type" AttributeName="RelatingFlowElement">
                      <EntityRules>
                        <EntityRule EntityName="IfcDistributionFlowElement" />
                      </EntityRules>
                    </AttributeRule>
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
          </Rules>
        </ConceptTemplate>
      </SubTemplates>
    </ConceptTemplate>
    <ConceptTemplate uuid="0e8b1397-1ac6-41e1-a6d0-f2b34688cb61" name="Product Shape" status="sample" applicableSchema="IFC4" applicableEntity="IfcProduct">
      <Definitions>
        <Definition>
          <Body><![CDATA[<p>A product is an occurence of a physical or virtual object with finite spatial extent that may have a shape representation as one of its characteristics. The concepts within the group of <em>Product Shape</em> define how a shape is created to represent different geometric and topological representations.</p>
            ]]></Body>
        </Definition>
      </Definitions>
      <SubTemplates>
        <ConceptTemplate uuid="ad2770c2-914e-4ab2-9d39-bc0dff3f7b24" name="Product Placement" status="sample" applicableSchema="IFC4" applicableEntity="IfcProduct">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>
Product occurrences are placed in a right handed Cartesian coordinate system. The <em>Product Placement</em> is used to establish an object coordinate system that maby be placed relative to a parent object coordinate system, and ultimately to the project coordinate system.</p> ]]></Body>
            </Definition>
          </Definitions>
          <SubTemplates>
            <ConceptTemplate uuid="e1d7f307-b9b2-4f45-837a-af7bead33464" name="Product Grid Placement" status="sample" applicableSchema="IFC4" applicableEntity="IfcProduct">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Product occurrences may be positioned relative to a grid, where the axes of such grid may be modified such that product occurrences are re-positioned relative to grid axes.</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="ObjectPlacement">
                  <EntityRules>
                    <EntityRule EntityName="IfcGridPlacement">
                      <AttributeRules>
                        <AttributeRule AttributeName="PlacementLocation">
                          <EntityRules>
                            <EntityRule EntityName="IfcVirtualGridIntersection">
                              <AttributeRules>
                                <AttributeRule AttributeName="OffsetDistances">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLengthMeasure" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="IntersectingAxes">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcGridAxis">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="AxisTag">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="AxisCurve">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLine">
                                              <AttributeRules>
                                                <AttributeRule AttributeName="Pnt">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcCartesianPoint">
                                                      <AttributeRules>
                                                        <AttributeRule AttributeName="Coordinates">
                                                          <EntityRules>
                                                            <EntityRule EntityName="IfcLengthMeasure" />
                                                          </EntityRules>
                                                        </AttributeRule>
                                                      </AttributeRules>
                                                    </EntityRule>
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="Dir">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcVector" />
                                                  </EntityRules>
                                                </AttributeRule>
                                              </AttributeRules>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="SameSense">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcBoolean" />
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="PlacementRefDirection">
                          <EntityRules>
                            <EntityRule EntityName="IfcDirection" />
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
        <ConceptTemplate uuid="13f96914-1ad4-41d4-ba99-411a9ecbf567" name="Product Geometric Representation" status="sample" applicableSchema="IFC4" applicableEntity="IfcProduct">
          <Definitions>
            <Definition>
              <Body><![CDATA[
<p>

The shape of products may be represented in multiple ways
 for different purposes. Each representation has a
 well-known string identifier and a particular
 representation context. There may be multiple
 representation contexts to describe a shape at various levels of detail. Most building elements have a 'Body'
 representation which defines or approximates the physical shape and volume. In addition to physical building elements, non-physical elements may have representations
 such as spaces and openings.

</p>

]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule AttributeName="Representation">
              <EntityRules>
                <EntityRule EntityName="IfcProductDefinitionShape">
                  <AttributeRules>
                    <AttributeRule AttributeName="Name" />
                    <AttributeRule AttributeName="Description" />
                    <AttributeRule AttributeName="Representations">
                      <EntityRules>
                        <EntityRule EntityName="IfcShapeRepresentation">
                          <AttributeRules>
                            <AttributeRule AttributeName="ContextOfItems">
                              <EntityRules>
                                <EntityRule EntityName="IfcGeometricRepresentationContext" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                              <EntityRules>
                                <EntityRule EntityName="IfcLabel" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                              <EntityRules>
                                <EntityRule EntityName="IfcLabel" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
          </Rules>
          <SubTemplates>
            <ConceptTemplate uuid="3bf716df-3990-4bfc-8045-9e4011c9b622" name="Axis Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>
Elements following a path provide an 'Axis' representation
 indicating a line segment or any arbitrary open bounded curve.
 Examples of such elements include walls, beams, columns,
 pipes, ducts, and cables. For elements that have a material
 profile set association indicating cross-section, a
 'Body' representation may be generated based on the axis
 curve and material profiles. Curve styles may indicate
 particular colors, line thicknesses, and dash patterns for
 2D rendering.

</p>


<p>The representation identifier of the axis representation
 is:</p>

<ul>
 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Axis'</li>

</ul>

<blockquote class="example">EXAMPLE&nbsp; 
A two-dimensional bounded curve is used as the wall axis in standard walls, a three-dimensional bounded curve is used as the reference axis in standard columns.</blockquote>
]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="Representation">
                  <EntityRules>
                    <EntityRule EntityName="IfcProductDefinitionShape">
                      <AttributeRules>
                        <AttributeRule AttributeName="Representations">
                          <EntityRules>
                            <EntityRule EntityName="IfcShapeRepresentation">
                              <AttributeRules>
                                <AttributeRule AttributeName="ContextOfItems">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel">
                                      <Constraints>
                                        <Constraint Expression="Identifier[Value] = 'Axis'" />
                                      </Constraints>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Items" AttributeName="Items" />
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Name" />
                        <AttributeRule AttributeName="Description" />
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
              <SubTemplates>
                <ConceptTemplate uuid="782444e8-d681-475a-9034-a9e7f53c6d65" name="Axis 2D Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>
The 'Axis' representation using 'Curve2D' representation type is predominately used to align material layer sets to geometric representations of standard walls.

</p>


<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>

<ul>
 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Axis'</li>


 <li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> : 'Curve2D'</li>
 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcBoundedCurve</em></li>

</ul>
]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="Representation">
                      <EntityRules>
                        <EntityRule EntityName="IfcProductDefinitionShape">
                          <AttributeRules>
                            <AttributeRule AttributeName="Representations">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Identifier[Value] = 'Axis'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Type[Value] = 'Curve2D'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Items" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcBoundedCurve" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name" />
                            <AttributeRule AttributeName="Description" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
                <ConceptTemplate uuid="b894d8cb-fb41-45ec-ba18-72cac6baff34" name="Axis 3D Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>
The 'Axis' representation using 'Curve3D' representation type is predominately used to align material profile sets to geometric representations of standard beams, columns, members, pipes, ducts and other longitudinal elements.

</p>


<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>

<ul>
 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Axis'</li>


 <li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> : 'Curve3D'</li>
 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcBoundedCurve</em></li>

</ul>
]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="Representation">
                      <EntityRules>
                        <EntityRule EntityName="IfcProductDefinitionShape">
                          <AttributeRules>
                            <AttributeRule AttributeName="Representations">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Identifier[Value] = 'Axis'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Type[Value] = 'Curve3D'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Items" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcBoundedCurve" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name" />
                            <AttributeRule AttributeName="Description" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
              </SubTemplates>
            </ConceptTemplate>
            <ConceptTemplate uuid="f16eb3be-ff88-4f33-97df-d55aed3a0f95" name="Profile Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Elements filling an opening provide a 'Profile' representation describing the shape of the cutout.  Examples of such elements include doors and windows.
</p>
<p>The representation identifier of the profile representation
 is:</p>

<ul>
 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Profile'</li>

</ul>
]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="Representation">
                  <EntityRules>
                    <EntityRule EntityName="IfcProductDefinitionShape">
                      <AttributeRules>
                        <AttributeRule AttributeName="Representations">
                          <EntityRules>
                            <EntityRule EntityName="IfcShapeRepresentation">
                              <AttributeRules>
                                <AttributeRule AttributeName="ContextOfItems">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel">
                                      <AttributeRules>
                                        <AttributeRule Description="Value=Profile" AttributeName="Value=Profile" />
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Items" AttributeName="Items" />
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Name" />
                        <AttributeRule AttributeName="Description" />
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
              <SubTemplates>
                <ConceptTemplate uuid="1d897220-740d-4793-9a8d-5d2774c7bc00" name="Profile 3D Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>The <em>Profile 3D Geometry</em> is the standard representation of the outer profile for elements filling an opening.  Examples of such elements include doors and windows.
 In the case of doors and windows the profile geometry is used to apply the parametric definition of lining and panel dimensions to the profile.</p>
<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>

<ul>
 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Profile'</li>


 
<li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> =
'Curve3D'</li>


 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcBoundedCurve</em></li>

</ul>
]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="Representation">
                      <EntityRules>
                        <EntityRule EntityName="IfcProductDefinitionShape">
                          <AttributeRules>
                            <AttributeRule AttributeName="Representations">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <AttributeRules>
                                            <AttributeRule Description="Value=Profile" AttributeName="Value=Profile" />
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Type[Value] = 'Curve3D'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Items" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcBoundedCurve" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name" />
                            <AttributeRule AttributeName="Description" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
              </SubTemplates>
            </ConceptTemplate>
            <ConceptTemplate uuid="c446bd16-2de3-4b97-b34f-4446ac0badc2" name="Body Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Elements may have a 'Body' representation describing the volumetric shape of the object. Such representation may be used for 3D coordination, rendering or quantity take-off. Geometry may be based on boundary representations describing outer faces, primitives such as spheres or cones, swept solids such as profile extrusions or revolutions, Constructive Solid Geometry (CSG) such as clippings or subtractions of other shapes, or Non-Uniform Rational B-Spline (NURBS) geometry. Surface styles may indicate particular colors, textures, and reflectance for 3D rendering.

</p>


<p>The representation identifier of the body representation
 is:</p>


<ul>

 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Body'</li>



</ul>
]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="Representation">
                  <EntityRules>
                    <EntityRule EntityName="IfcProductDefinitionShape">
                      <AttributeRules>
                        <AttributeRule AttributeName="Representations">
                          <EntityRules>
                            <EntityRule EntityName="IfcShapeRepresentation">
                              <AttributeRules>
                                <AttributeRule AttributeName="ContextOfItems">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel">
                                      <Constraints>
                                        <Constraint Expression="Identifier[Value] = 'Body'" />
                                      </Constraints>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Name" />
                        <AttributeRule AttributeName="Description" />
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
              <SubTemplates>
                <ConceptTemplate uuid="17d34a12-9403-40f4-bf82-65399be23c55" name="Body SurfaceModel Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>The <em>Body SurfaceModel Geometry</em> is the representation of the 3D shape of a product by surface models.

</p>

<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>

<ul>
 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Body'</li>


 
<li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> =
'SurfaceModel'</li>


 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcTessellateditem</em>, <em>IfcShellBasedSurfaceModel</em>, <em>IfcFaceBasedSurfaceModel</em></li>

</ul>
]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="Representation">
                      <EntityRules>
                        <EntityRule EntityName="IfcProductDefinitionShape">
                          <AttributeRules>
                            <AttributeRule AttributeName="Representations">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Type[Value] = 'SurfaceModel'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Items" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcTessellatedFaceSet" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name" />
                            <AttributeRule AttributeName="Description" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
                <ConceptTemplate uuid="5cfd4403-6545-4c6d-bc27-0a95a3d09950" name="Body Tessellation Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>The <em>Body Tessellation Geometry</em> is the representation of the 3D shape of a product by tessellated surface models.

</p>

<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>

<ul>
 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Body'</li>


 
<li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> =
'Tessellation'</li>


 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcTessellatedFaceSet</em></li>

</ul>
]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="Representation">
                      <EntityRules>
                        <EntityRule EntityName="IfcProductDefinitionShape">
                          <AttributeRules>
                            <AttributeRule AttributeName="Representations">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Type[Value] = 'Tessellation'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Items" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcTriangulatedFaceSet">
                                          <References>
                                            <Template ref="8a96e670-c72c-4dde-933a-b8e9bffd6983" />
                                          </References>
                                        </EntityRule>
                                        <EntityRule EntityName="IfcPolygonalFaceSet">
                                          <References>
                                            <Template ref="72c0b316-6b48-478d-91fa-6e4b5a781b07" />
                                          </References>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name" />
                            <AttributeRule AttributeName="Description" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
                <ConceptTemplate uuid="cb7c18fa-cf83-4db1-be1b-c013ba4ed672" name="Body SweptSolid Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>The <em>Body SweptSolid Geometry</em> is the representation of the 3D shape of a product by swept solid models, only allowing for the basic extruded area solids and revolved area solids.

</p>

<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>


<ul>

 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Body'</li>



 
<li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> =
'SweptSolid'</li>



 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcExtrudedAreaSolid</em>, <em>IfcRevolvedAreaSolid</em></li>


</ul>
]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="Representation">
                      <EntityRules>
                        <EntityRule EntityName="IfcProductDefinitionShape">
                          <AttributeRules>
                            <AttributeRule AttributeName="Representations">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Geometry" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSweptAreaSolid" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name" />
                            <AttributeRule AttributeName="Description" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                  <SubTemplates>
                    <ConceptTemplate uuid="38710ccd-8ff5-41ba-8fda-08300907a02e" name="Body SweptSolid PolyCurve Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                      <Definitions>
                        <Definition>
                          <Body><![CDATA[<p>The <em>Body SweptSolid PolyCurve Geometry</em> is the representation of the 3D shape of a product by swept solid models, only allowing for the basic extruded area solids and revolved area solids.

</p>

<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>


<ul>

 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Body'</li>



 
<li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> =
'SweptSolid'</li>



 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcExtrudedAreaSolid</em>, <em>IfcRevolvedAreaSolid</em></li>



 
<li><em>IfcShapeRepresentation</em><em>.Items[1..n].SweptArea</em> =
 <em>IfcArbitraryClosedProfileDef</em>, <em>IfcArbitraryProfileDefWithVoids</em></li>


 
<li><em>IfcShapeRepresentation</em><em>.Items[1..n].SweptArea.OuterCurve</em> =
 <em>IfcIndexedPolyCurve</em></li>

 
<li><em>IfcShapeRepresentation</em><em>.Items[1..n].SweptArea.InnerCurves</em> =
 <em>IfcIndexedPolyCurve</em></li>
</ul>
]]></Body>
                        </Definition>
                      </Definitions>
                      <Rules>
                        <AttributeRule AttributeName="Representation">
                          <EntityRules>
                            <EntityRule EntityName="IfcProductDefinitionShape">
                              <AttributeRules>
                                <AttributeRule AttributeName="Representations">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcShapeRepresentation">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="ContextOfItems">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Geometry" AttributeName="Items">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcSweptAreaSolid">
                                              <References>
                                                <Template ref="394297ba-f77f-4107-a9cc-9ecb11744de6" />
                                              </References>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name" />
                                <AttributeRule AttributeName="Description" />
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="1d8079be-98fb-4c3e-a202-49fb218bfeb1" name="Body SweptSolid ParameterizedProfile Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                      <Rules>
                        <AttributeRule AttributeName="Representation">
                          <EntityRules>
                            <EntityRule EntityName="IfcProductDefinitionShape">
                              <AttributeRules>
                                <AttributeRule AttributeName="Representations">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcShapeRepresentation">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="ContextOfItems">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Geometry" AttributeName="Items">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcSweptAreaSolid">
                                              <References>
                                                <Template ref="9fec7664-7df5-4897-9674-b5991ad8abcd" />
                                              </References>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name" />
                                <AttributeRule AttributeName="Description" />
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="6e79c7cc-e238-405d-8f0e-87b4fabf366b" name="Body SweptSolid Composite Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                      <Definitions>
                        <Definition>
                          <Body><![CDATA[]]></Body>
                        </Definition>
                      </Definitions>
                      <Rules>
                        <AttributeRule AttributeName="Representation">
                          <EntityRules>
                            <EntityRule EntityName="IfcProductDefinitionShape">
                              <AttributeRules>
                                <AttributeRule AttributeName="Representations">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcShapeRepresentation">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="ContextOfItems">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Geometry" AttributeName="Items">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcSweptAreaSolid">
                                              <References>
                                                <Template ref="4fb6fbe6-4e6a-4d5c-ae94-6de37880eb8c" />
                                              </References>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name" />
                                <AttributeRule AttributeName="Description" />
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                  </SubTemplates>
                </ConceptTemplate>
                <ConceptTemplate uuid="5464785d-e5d1-4f75-9ecc-6cb39214705e" name="Body AdvancedSweptSolid Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>The <em>Body AdvancedSweptSolid Geometry</em> is the representation of the 3D shape of a product by swept solid models, including advanced sweeping operations, such as sweeping along any directrix and tapering.

</p>

<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>

<ul>
 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Body'</li>


 
<li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> =
'AdvancedSweptSolid'</li>


 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcSweptAreaSolid</em>, <em>IfcSweptDiskSolid</em></li>

</ul>
]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="Representation">
                      <EntityRules>
                        <EntityRule EntityName="IfcProductDefinitionShape">
                          <AttributeRules>
                            <AttributeRule AttributeName="Representations">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Type[Value] = 'AdvancedSweptSolid'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Items" AttributeName="Items" />
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name" />
                            <AttributeRule AttributeName="Description" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                  <SubTemplates>
                    <ConceptTemplate uuid="75af261d-d8ff-46be-8037-001930349f07" name="Body AdvancedSwept Directrix Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                      <Rules>
                        <AttributeRule AttributeName="Representation">
                          <EntityRules>
                            <EntityRule EntityName="IfcProductDefinitionShape">
                              <AttributeRules>
                                <AttributeRule AttributeName="Representations">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcShapeRepresentation">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="ContextOfItems">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel">
                                              <Constraints>
                                                <Constraint Expression="Type[Value] = 'AdvancedSweptSolid'" />
                                              </Constraints>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Items" AttributeName="Items">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcSurfaceCurveSweptAreaSolid">
                                              <References>
                                                <Template ref="586efa64-38aa-48ba-b8b5-d1fafe6b72f2" />
                                              </References>
                                            </EntityRule>
                                            <EntityRule EntityName="IfcFixedReferenceSweptAreaSolid">
                                              <References>
                                                <Template ref="cc432c25-f0e3-4838-bd77-f51ecac5b0df" />
                                              </References>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name" />
                                <AttributeRule AttributeName="Description" />
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="714522b4-488e-495d-ba81-f10a5e41b1dc" name="Body AdvancedSwept Tapered Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                      <Rules>
                        <AttributeRule AttributeName="Representation">
                          <EntityRules>
                            <EntityRule EntityName="IfcProductDefinitionShape">
                              <AttributeRules>
                                <AttributeRule AttributeName="Representations">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcShapeRepresentation">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="ContextOfItems">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel" />
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcLabel">
                                              <Constraints>
                                                <Constraint Expression="Type[Value] = 'AdvancedSweptSolid'" />
                                              </Constraints>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule RuleID="Items" AttributeName="Items">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcExtrudedAreaSolidTapered">
                                              <References>
                                                <Template ref="8867b942-2f8c-4eb7-9408-ed41c28dde63" />
                                              </References>
                                            </EntityRule>
                                            <EntityRule EntityName="IfcRevolvedAreaSolidTapered">
                                              <References>
                                                <Template ref="24ad085d-84e5-4ff4-83e9-b54198977252" />
                                              </References>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name" />
                                <AttributeRule AttributeName="Description" />
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                  </SubTemplates>
                </ConceptTemplate>
                <ConceptTemplate uuid="8fb923f5-b82d-48d2-ad29-d678ca473fda" name="Body Brep Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>The <em>Body Brep Geometry</em> is the representation of the 3D shape of a product by faceted boundary representation models.

</p>

<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>

<ul>
 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Body'</li>


 
<li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> =
'Brep'</li>


 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcFacetedBrep</em></li>

</ul>
]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="Representation">
                      <EntityRules>
                        <EntityRule EntityName="IfcProductDefinitionShape">
                          <AttributeRules>
                            <AttributeRule AttributeName="Representations">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Type[Value] = 'Brep'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Items" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcFacetedBrep" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name" />
                            <AttributeRule AttributeName="Description" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
                <ConceptTemplate uuid="fc763575-50f1-4bc0-bbf2-382380152047" name="Body AdvancedBrep Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>The <em>Body Brep Geometry</em> is the representation of the 3D shape of a product by boundary representation models, including NURBS.

</p>

<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>

<ul>
 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Body'</li>


 
<li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> =
'AdvancedBrep'</li>


 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcAdvancedBrep</em>, <em>IfcFacetedBrep</em></li>

</ul>
]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="Representation">
                      <EntityRules>
                        <EntityRule EntityName="IfcProductDefinitionShape">
                          <AttributeRules>
                            <AttributeRule AttributeName="Representations">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Type[Value] = 'AdvancedBrep'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Items" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcAdvancedBrep">
                                          <References>
                                            <Template ref="3b6904cd-5852-4d29-b39e-64b326a74db0" />
                                          </References>
                                        </EntityRule>
                                        <EntityRule EntityName="IfcFacetedBrep">
                                          <References>
                                            <Template ref="bb55a495-9092-4230-afc6-fb0360d7d452" />
                                          </References>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name" />
                            <AttributeRule AttributeName="Description" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
                <ConceptTemplate uuid="a0ab7630-6965-495e-be8f-d106fd2599c2" name="Body CSG Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>The <em>Body CSG Geometry</em> is the representation of the 3D shape of a product by Constructive Solid Geometry models.

</p>


<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>


<ul>

 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Body'</li>



 
<li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> =
'CSG'</li>



 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcCSGSolid</em></li>


</ul>


<blockquote class="note">NOTE&nbsp; The <em>Items</em> <em>IfcBooleanResult</em> and <em>IfcPrimitive3D</em> shall also be allowed for compatibility with previous releases of the standard.</blockquote>]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="Representation">
                      <EntityRules>
                        <EntityRule EntityName="IfcProductDefinitionShape">
                          <AttributeRules>
                            <AttributeRule AttributeName="Representations">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Type[Value] = 'CSG'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCsgSolid">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="TreeRootExpression" />
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name" />
                            <AttributeRule AttributeName="Description" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
                <ConceptTemplate uuid="2cdbc2f5-9b0c-43ea-9d2a-9d72d0147e00" name="Body Clipping Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcElement">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>The <em>Body Clipping Geometry</em> is the representation of the 3D shape of a product by using Constructive Solid Geometry models with difference operations involving half space solids only.

</p>

<p>The following attribute values for the
 <em>IfcShapeRepresentation</em> holding this geometric
 representation shall be used:</p>

<ul>
 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
'Body'</li>


 
<li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> =
'Clipping'</li>


 
<li><em>IfcShapeRepresentation</em><em>.Items</em> =
 <em>IfcBooleanClippingResult</em></li>

</ul>

<blockquote class="note">NOTE&nbsp; This representation type is predominately used for compatibility with previous releases of the standard.</blockquote>]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="Representation">
                      <EntityRules>
                        <EntityRule EntityName="IfcProductDefinitionShape">
                          <AttributeRules>
                            <AttributeRule AttributeName="Representations">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <Constraints>
                                            <Constraint Expression="Type[Value] = 'Clipping'" />
                                          </Constraints>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Items" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcBooleanClippingResult">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="Operator">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcBooleanOperator" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="FirstOperand">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcCsgPrimitive3D" />
                                                <EntityRule EntityName="IfcSolidModel" />
                                                <EntityRule EntityName="IfcBooleanClippingResult" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="SecondOperand">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcHalfSpaceSolid" />
                                                <EntityRule EntityName="IfcPolygonalBoundedHalfSpace">
                                                  <AttributeRules>
                                                    <AttributeRule AttributeName="BaseSurface">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcPlane" />
                                                      </EntityRules>
                                                    </AttributeRule>
                                                    <AttributeRule AttributeName="AgreementFlag">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcBoolean" />
                                                      </EntityRules>
                                                    </AttributeRule>
                                                    <AttributeRule AttributeName="Position">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcAxis2Placement3D" />
                                                      </EntityRules>
                                                    </AttributeRule>
                                                    <AttributeRule AttributeName="PolygonalBoundary">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcIndexedPolyCurve" />
                                                      </EntityRules>
                                                    </AttributeRule>
                                                  </AttributeRules>
                                                </EntityRule>
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Name" />
                            <AttributeRule AttributeName="Description" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
              </SubTemplates>
            </ConceptTemplate>
            <ConceptTemplate uuid="ecfdd7c8-71d5-449f-bf20-e63a25dcb9ba" name="Mapped Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcProduct">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>
Elements may have a 'Mapped Geometry' representation
 that reuses the concept <em>Product Type Shape</em> at the corresponding product type, as defined by the concept <em>Object Typing</em>.</p> 

<p>The representation identifier of the mapped geometry representation
 is any of the other valid geometric representation identifiers, such as 'Body', 'FootPrint', or 'Axis'.</p>

<ul>

 
<li><em>IfcShapeRepresentation</em><em>.RepresentationIdentifier</em> =
 (any, see above)</li>



 
<li><em>IfcShapeRepresentation</em><em>.RepresentationType</em> =
'MappedRepresentation'</li>



</ul>
]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="Representation">
                  <EntityRules>
                    <EntityRule EntityName="IfcProductDefinitionShape">
                      <AttributeRules>
                        <AttributeRule AttributeName="Representations">
                          <EntityRules>
                            <EntityRule EntityName="IfcShapeRepresentation">
                              <AttributeRules>
                                <AttributeRule AttributeName="ContextOfItems">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Identifier" AttributeName="RepresentationIdentifier">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Items">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcMappedItem">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="MappingSource">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcRepresentationMap">
                                              <AttributeRules>
                                                <AttributeRule AttributeName="MappingOrigin">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcAxis2Placement3D">
                                                      <AttributeRules>
                                                        <AttributeRule AttributeName="Location">
                                                          <EntityRules>
                                                            <EntityRule EntityName="IfcCartesianPoint" />
                                                          </EntityRules>
                                                        </AttributeRule>
                                                        <AttributeRule AttributeName="Axis">
                                                          <EntityRules>
                                                            <EntityRule EntityName="IfcDirection" />
                                                          </EntityRules>
                                                        </AttributeRule>
                                                        <AttributeRule AttributeName="RefDirection">
                                                          <EntityRules>
                                                            <EntityRule EntityName="IfcDirection" />
                                                          </EntityRules>
                                                        </AttributeRule>
                                                      </AttributeRules>
                                                    </EntityRule>
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="MappedRepresentation">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcShapeRepresentation" />
                                                  </EntityRules>
                                                </AttributeRule>
                                              </AttributeRules>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                        <AttributeRule AttributeName="MappingTarget">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcCartesianTransformationOperator3D">
                                              <AttributeRules>
                                                <AttributeRule AttributeName="Axis1">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcDirection" />
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="Axis2">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcDirection" />
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="LocalOrigin">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcCartesianPoint" />
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="Axis3">
                                                  <EntityRules>
                                                    <EntityRule EntityName="IfcDirection" />
                                                  </EntityRules>
                                                </AttributeRule>
                                                <AttributeRule AttributeName="Scale" />
                                              </AttributeRules>
                                            </EntityRule>
                                            <EntityRule EntityName="IfcCartesianTransformationOperator3DnonUniform">
                                              <AttributeRules>
                                                <AttributeRule AttributeName="Scale2" />
                                                <AttributeRule AttributeName="Scale3" />
                                              </AttributeRules>
                                            </EntityRule>
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Name" />
                        <AttributeRule AttributeName="Description" />
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
      </SubTemplates>
    </ConceptTemplate>
    <ConceptTemplate uuid="80f88bec-0436-4f70-a42a-c04705656a81" name="Product Type Shape" status="sample" applicableSchema="IFC4" applicableEntity="IfcTypeProduct">
      <Definitions>
        <Definition>
          <Body><![CDATA[<p>Product types define explicit product models or parametric product families, that may be instantiated in buildings.</p>]]></Body>
        </Definition>
      </Definitions>
      <Rules>
        <AttributeRule AttributeName="RepresentationMaps">
          <EntityRules>
            <EntityRule EntityName="IfcRepresentationMap" />
          </EntityRules>
        </AttributeRule>
      </Rules>
      <SubTemplates>
        <ConceptTemplate uuid="ad332edd-42ee-4cc6-a86b-dd904bd3f762" name="Product Type Geometric Representation" status="sample" applicableSchema="IFC4" applicableEntity="IfcTypeProduct">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Product types may have representations indicating shape representation for geometry, clearance, or other concepts.</p>
<p>The shape representation attached to a type is defined using the relationship <em>RepresentationMaps</em> of data type <em>IfcRepresentationMap</em>. It provides the means to store several representation maps for different purposes. In order to utilze the representation map at each occurrence of the product type, the product occurrence has to use the concept 'Mapped Geometry'.</p>
<blockquote class="note">NOTE&nbsp; See <em>IfcTypeProduct</em> for further information and figures explaning the concepts 'Product Type Representation' and 'Mapped Geometry'.</blockquote>]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule AttributeName="RepresentationMaps">
              <EntityRules>
                <EntityRule EntityName="IfcRepresentationMap">
                  <AttributeRules>
                    <AttributeRule AttributeName="MappedRepresentation">
                      <EntityRules>
                        <EntityRule EntityName="IfcShapeRepresentation" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="MappingOrigin">
                      <EntityRules>
                        <EntityRule EntityName="IfcAxis2Placement2D" />
                        <EntityRule EntityName="IfcAxis2Placement3D" />
                      </EntityRules>
                    </AttributeRule>
                  </AttributeRules>
                </EntityRule>
              </EntityRules>
            </AttributeRule>
          </Rules>
          <SubTemplates>
            <ConceptTemplate uuid="3aec2d00-b4bb-476a-a821-fc22b895b531" name="Type Body Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcTypeProduct">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The Body representation defines the physical shape of the product type.</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="RepresentationMaps">
                  <EntityRules>
                    <EntityRule EntityName="IfcRepresentationMap">
                      <AttributeRules>
                        <AttributeRule AttributeName="MappedRepresentation">
                          <EntityRules>
                            <EntityRule EntityName="IfcShapeRepresentation">
                              <AttributeRules>
                                <AttributeRule AttributeName="ContextOfItems">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RepresentationIdentifier">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel">
                                      <AttributeRules>
                                        <AttributeRule Description="Value=Body" AttributeName="Value=Body" />
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="RepresentationType" AttributeName="RepresentationType">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Geometry" AttributeName="Items" />
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="MappingOrigin">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement3D" />
                            <EntityRule EntityName="IfcAxis2Placement2D" />
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
              <SubTemplates>
                <ConceptTemplate uuid="ff9aa32a-3c66-4484-a81e-c0e8f9b45a2a" name="Type Body CSG Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcTypeProduct">
                  <Rules>
                    <AttributeRule AttributeName="RepresentationMaps">
                      <EntityRules>
                        <EntityRule EntityName="IfcRepresentationMap">
                          <AttributeRules>
                            <AttributeRule AttributeName="MappedRepresentation">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <AttributeRules>
                                            <AttributeRule Description="Value=Body" AttributeName="Value=Body" />
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="RepresentationType" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Geometry" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCsgSolid">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="TreeRootExpression">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcBooleanResult">
                                                  <AttributeRules>
                                                    <AttributeRule AttributeName="Operator">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcBooleanOperator" />
                                                      </EntityRules>
                                                    </AttributeRule>
                                                    <AttributeRule AttributeName="FirstOperand">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcBooleanOperand" />
                                                      </EntityRules>
                                                    </AttributeRule>
                                                    <AttributeRule AttributeName="SecondOperand">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcBooleanOperand" />
                                                      </EntityRules>
                                                    </AttributeRule>
                                                  </AttributeRules>
                                                </EntityRule>
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                        <EntityRule EntityName="IfcBlock" />
                                        <EntityRule EntityName="IfcRectangularPyramid" />
                                        <EntityRule EntityName="IfcRightCircularCone" />
                                        <EntityRule EntityName="IfcRightCircularCylinder" />
                                        <EntityRule EntityName="IfcSphere" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="MappingOrigin">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D" />
                                <EntityRule EntityName="IfcAxis2Placement2D" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
                <ConceptTemplate uuid="c62f6292-e594-45dc-af81-7efd128fd973" name="Type Body Brep Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcTypeProduct">
                  <Rules>
                    <AttributeRule AttributeName="RepresentationMaps">
                      <EntityRules>
                        <EntityRule EntityName="IfcRepresentationMap">
                          <AttributeRules>
                            <AttributeRule AttributeName="MappedRepresentation">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <AttributeRules>
                                            <AttributeRule Description="Value=Body" AttributeName="Value=Body" />
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="RepresentationType" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Geometry" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcFacetedBrep">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="Outer">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcClosedShell">
                                                  <AttributeRules>
                                                    <AttributeRule AttributeName="CfsFaces">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcFace">
                                                          <AttributeRules>
                                                            <AttributeRule AttributeName="Bounds">
                                                              <EntityRules>
                                                                <EntityRule EntityName="IfcFaceOuterBound">
                                                                  <AttributeRules>
                                                                    <AttributeRule AttributeName="Bound">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcPolyLoop">
                                                                          <AttributeRules>
                                                                            <AttributeRule AttributeName="Polygon">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcCartesianPoint" />
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                          </AttributeRules>
                                                                        </EntityRule>
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="Orientation">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcBoolean" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                  </AttributeRules>
                                                                </EntityRule>
                                                              </EntityRules>
                                                            </AttributeRule>
                                                          </AttributeRules>
                                                        </EntityRule>
                                                      </EntityRules>
                                                    </AttributeRule>
                                                  </AttributeRules>
                                                </EntityRule>
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="MappingOrigin">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D" />
                                <EntityRule EntityName="IfcAxis2Placement2D" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
                <ConceptTemplate uuid="1c9da227-29f6-4fb7-ad2f-b26f307ab3e3" name="Type Body AdvancedBrep Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcTypeProduct">
                  <Rules>
                    <AttributeRule AttributeName="RepresentationMaps">
                      <EntityRules>
                        <EntityRule EntityName="IfcRepresentationMap">
                          <AttributeRules>
                            <AttributeRule AttributeName="MappedRepresentation">
                              <EntityRules>
                                <EntityRule EntityName="IfcShapeRepresentation">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="ContextOfItems">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RepresentationIdentifier">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel">
                                          <AttributeRules>
                                            <AttributeRule Description="Value=Body" AttributeName="Value=Body" />
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="RepresentationType" AttributeName="RepresentationType">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule RuleID="Geometry" AttributeName="Items">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcAdvancedBrep">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="Outer">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcClosedShell">
                                                  <AttributeRules>
                                                    <AttributeRule AttributeName="CfsFaces">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcAdvancedFace">
                                                          <AttributeRules>
                                                            <AttributeRule AttributeName="Bounds">
                                                              <EntityRules>
                                                                <EntityRule EntityName="IfcFaceOuterBound">
                                                                  <AttributeRules>
                                                                    <AttributeRule AttributeName="Bound">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcEdgeLoop">
                                                                          <AttributeRules>
                                                                            <AttributeRule AttributeName="EdgeList">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcOrientedEdge">
                                                                                  <AttributeRules>
                                                                                    <AttributeRule AttributeName="EdgeElement">
                                                                                      <EntityRules>
                                                                                        <EntityRule EntityName="IfcEdgeCurve">
                                                                                          <AttributeRules>
                                                                                            <AttributeRule AttributeName="EdgeGeometry">
                                                                                              <EntityRules>
                                                                                                <EntityRule EntityName="IfcBSplineCurveWithKnots">
                                                                                                  <AttributeRules>
                                                                                                    <AttributeRule AttributeName="Degree">
                                                                                                      <EntityRules>
                                                                                                        <EntityRule EntityName="IfcInteger" />
                                                                                                      </EntityRules>
                                                                                                    </AttributeRule>
                                                                                                    <AttributeRule AttributeName="ControlPointsList">
                                                                                                      <EntityRules>
                                                                                                        <EntityRule EntityName="IfcCartesianPoint" />
                                                                                                      </EntityRules>
                                                                                                    </AttributeRule>
                                                                                                    <AttributeRule AttributeName="CurveForm">
                                                                                                      <EntityRules>
                                                                                                        <EntityRule EntityName="IfcBSplineCurveForm" />
                                                                                                      </EntityRules>
                                                                                                    </AttributeRule>
                                                                                                    <AttributeRule AttributeName="ClosedCurve">
                                                                                                      <EntityRules>
                                                                                                        <EntityRule EntityName="IfcLogical" />
                                                                                                      </EntityRules>
                                                                                                    </AttributeRule>
                                                                                                    <AttributeRule AttributeName="SelfIntersect">
                                                                                                      <EntityRules>
                                                                                                        <EntityRule EntityName="IfcLogical" />
                                                                                                      </EntityRules>
                                                                                                    </AttributeRule>
                                                                                                    <AttributeRule AttributeName="KnotMultiplicities">
                                                                                                      <EntityRules>
                                                                                                        <EntityRule EntityName="IfcInteger" />
                                                                                                      </EntityRules>
                                                                                                    </AttributeRule>
                                                                                                    <AttributeRule AttributeName="Knots">
                                                                                                      <EntityRules>
                                                                                                        <EntityRule EntityName="IfcParameterValue" />
                                                                                                      </EntityRules>
                                                                                                    </AttributeRule>
                                                                                                    <AttributeRule AttributeName="KnotSpec">
                                                                                                      <EntityRules>
                                                                                                        <EntityRule EntityName="IfcKnotType" />
                                                                                                      </EntityRules>
                                                                                                    </AttributeRule>
                                                                                                  </AttributeRules>
                                                                                                </EntityRule>
                                                                                              </EntityRules>
                                                                                            </AttributeRule>
                                                                                            <AttributeRule AttributeName="EdgeStart">
                                                                                              <EntityRules>
                                                                                                <EntityRule EntityName="IfcVertexPoint">
                                                                                                  <AttributeRules>
                                                                                                    <AttributeRule AttributeName="VertexGeometry">
                                                                                                      <EntityRules>
                                                                                                        <EntityRule EntityName="IfcCartesianPoint" />
                                                                                                      </EntityRules>
                                                                                                    </AttributeRule>
                                                                                                  </AttributeRules>
                                                                                                </EntityRule>
                                                                                              </EntityRules>
                                                                                            </AttributeRule>
                                                                                            <AttributeRule AttributeName="EdgeEnd">
                                                                                              <EntityRules>
                                                                                                <EntityRule EntityName="IfcVertexPoint">
                                                                                                  <AttributeRules>
                                                                                                    <AttributeRule AttributeName="VertexGeometry">
                                                                                                      <EntityRules>
                                                                                                        <EntityRule EntityName="IfcCartesianPoint" />
                                                                                                      </EntityRules>
                                                                                                    </AttributeRule>
                                                                                                  </AttributeRules>
                                                                                                </EntityRule>
                                                                                              </EntityRules>
                                                                                            </AttributeRule>
                                                                                            <AttributeRule AttributeName="SameSense">
                                                                                              <EntityRules>
                                                                                                <EntityRule EntityName="IfcBoolean" />
                                                                                              </EntityRules>
                                                                                            </AttributeRule>
                                                                                          </AttributeRules>
                                                                                        </EntityRule>
                                                                                      </EntityRules>
                                                                                    </AttributeRule>
                                                                                    <AttributeRule AttributeName="Orientation">
                                                                                      <EntityRules>
                                                                                        <EntityRule EntityName="IfcBoolean" />
                                                                                      </EntityRules>
                                                                                    </AttributeRule>
                                                                                  </AttributeRules>
                                                                                </EntityRule>
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                          </AttributeRules>
                                                                        </EntityRule>
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="Orientation">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcBoolean" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                  </AttributeRules>
                                                                </EntityRule>
                                                              </EntityRules>
                                                            </AttributeRule>
                                                            <AttributeRule AttributeName="FaceSurface">
                                                              <EntityRules>
                                                                <EntityRule EntityName="IfcBSplineSurfaceWithKnots">
                                                                  <AttributeRules>
                                                                    <AttributeRule AttributeName="ControlPointsList">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcCartesianPoint" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="UDegree">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcInteger" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="VDegree">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcInteger" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="SurfaceForm">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcBSplineSurfaceForm" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="UClosed">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcLogical" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="VClosed">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcLogical" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="SelfIntersect">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcLogical" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="UMultiplicities">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcInteger" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="VMultiplicities">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcInteger" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="UKnots">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcParameterValue" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="VKnots">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcParameterValue" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="KnotSpec">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcKnotType" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                  </AttributeRules>
                                                                </EntityRule>
                                                              </EntityRules>
                                                            </AttributeRule>
                                                          </AttributeRules>
                                                        </EntityRule>
                                                      </EntityRules>
                                                    </AttributeRule>
                                                  </AttributeRules>
                                                </EntityRule>
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="MappingOrigin">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D" />
                                <EntityRule EntityName="IfcAxis2Placement2D" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
              </SubTemplates>
            </ConceptTemplate>
            <ConceptTemplate uuid="f1ebb0f3-96c9-4912-a475-d012a23f8179" name="Type Clearance Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcDistributionElementType">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>For elements that require clearance such as for safety, maintenance, or other purpose, this represents the 3D clearance volume of the item having RepresentationType of 'Surface3D'. Such clearance region indicates space that should not intersect with the 'Body' representation of other elements, though may intersect with the 'Clearance' representation of other elements.</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="RepresentationMaps">
                  <EntityRules>
                    <EntityRule EntityName="IfcRepresentationMap">
                      <AttributeRules>
                        <AttributeRule AttributeName="MappedRepresentation">
                          <EntityRules>
                            <EntityRule EntityName="IfcShapeRepresentation">
                              <AttributeRules>
                                <AttributeRule AttributeName="ContextOfItems">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcGeometricRepresentationContext" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RepresentationIdentifier">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel">
                                      <AttributeRules>
                                        <AttributeRule Description="Value=Clearance" AttributeName="Value=Clearance" />
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Type" AttributeName="RepresentationType">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule RuleID="Geometry" AttributeName="Items">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcBoundedSurface" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="MappingOrigin">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement3D" />
                            <EntityRule EntityName="IfcAxis2Placement2D" />
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
      </SubTemplates>
    </ConceptTemplate>
    <ConceptTemplate uuid="a322fdd7-cd28-4ea7-8797-f6cf124ab3d6" name="Partial Templates" status="sample" applicableSchema="IFC4">
      <Definitions>
        <Definition>
          <Body><![CDATA[<p>Partial concept templates are described herein to indicate usage of common data types, which are then incorporated into other templates.</p>]]></Body>
        </Definition>
      </Definitions>
      <SubTemplates>
        <ConceptTemplate uuid="88b4aaa9-0925-447c-b009-fe357b7c754e" name="Values" status="sample" applicableSchema="IFC4" applicableEntity="IfcSimpleProperty">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Properties may contain user-defined data, where data types are open-ended.</p>]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule RuleID="PropertyName" AttributeName="Name">
              <EntityRules>
                <EntityRule EntityName="IfcIdentifier" />
              </EntityRules>
            </AttributeRule>
            <AttributeRule AttributeName="Description">
              <EntityRules>
                <EntityRule EntityName="IfcText" />
              </EntityRules>
            </AttributeRule>
          </Rules>
          <SubTemplates>
            <ConceptTemplate uuid="6655f6d0-29a8-47b8-8f3d-c9fce9c9a620" name="Single Value" status="sample" owner="System" applicableSchema="IFC4" applicableEntity="IfcPropertySingleValue">
              <Rules>
                <AttributeRule RuleID="PropertyName" AttributeName="Name">
                  <EntityRules>
                    <EntityRule EntityName="IfcIdentifier" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Description">
                  <EntityRules>
                    <EntityRule EntityName="IfcText" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule RuleID="Value" AttributeName="NominalValue">
                  <EntityRules>
                    <EntityRule EntityName="IfcValue" />
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
            <ConceptTemplate uuid="3d67a2d2-761d-44d9-a09e-b7fbb1fa5632" name="Bounded Value" status="sample" owner="System" applicableSchema="IFC4" applicableEntity="IfcPropertyBoundedValue">
              <Rules>
                <AttributeRule RuleID="PropertyName" AttributeName="Name">
                  <EntityRules>
                    <EntityRule EntityName="IfcIdentifier" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Description">
                  <EntityRules>
                    <EntityRule EntityName="IfcText" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule RuleID="UpperValue" AttributeName="UpperBoundValue">
                  <EntityRules>
                    <EntityRule EntityName="IfcValue" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule RuleID="LowerValue" AttributeName="LowerBoundValue">
                  <EntityRules>
                    <EntityRule EntityName="IfcValue" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule RuleID="SetValue" AttributeName="SetPointValue">
                  <EntityRules>
                    <EntityRule EntityName="IfcValue" />
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
            <ConceptTemplate uuid="c148a099-c351-43a8-9266-5f3de0b45a95" name="Enumerated Value" status="sample" owner="System" applicableSchema="IFC4" applicableEntity="IfcPropertyEnumeratedValue">
              <Rules>
                <AttributeRule RuleID="PropertyName" AttributeName="Name">
                  <EntityRules>
                    <EntityRule EntityName="IfcIdentifier" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Description">
                  <EntityRules>
                    <EntityRule EntityName="IfcText" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule RuleID="Value" AttributeName="EnumerationValues">
                  <EntityRules>
                    <EntityRule EntityName="IfcValue" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="EnumerationReference">
                  <EntityRules>
                    <EntityRule EntityName="IfcPropertyEnumeration">
                      <AttributeRules>
                        <AttributeRule RuleID="Reference" AttributeName="Name">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
            <ConceptTemplate uuid="8e10b688-9179-4e3a-8db2-6abcaafe952d" name="List Value" status="sample" applicableSchema="IFC4" applicableEntity="IfcPropertyListValue">
              <Rules>
                <AttributeRule RuleID="PropertyName" AttributeName="Name">
                  <EntityRules>
                    <EntityRule EntityName="IfcIdentifier" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Description">
                  <EntityRules>
                    <EntityRule EntityName="IfcText" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule RuleID="Value" AttributeName="ListValues">
                  <EntityRules>
                    <EntityRule EntityName="IfcValue" />
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
            <ConceptTemplate uuid="35c947b0-6abc-4b13-8ec7-696ef2041721" name="Table Value" status="sample" applicableSchema="IFC4" applicableEntity="IfcPropertyTableValue">
              <Rules>
                <AttributeRule RuleID="PropertyName" AttributeName="Name">
                  <EntityRules>
                    <EntityRule EntityName="IfcIdentifier" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Description">
                  <EntityRules>
                    <EntityRule EntityName="IfcText" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule RuleID="Value" AttributeName="DefiningValues">
                  <EntityRules>
                    <EntityRule EntityName="IfcValue" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule RuleID="Reference" AttributeName="DefinedValues">
                  <EntityRules>
                    <EntityRule EntityName="IfcValue" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Expression">
                  <EntityRules>
                    <EntityRule EntityName="IfcText" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="CurveInterpolation">
                  <EntityRules>
                    <EntityRule EntityName="IfcCurveInterpolationEnum" />
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
        <ConceptTemplate uuid="eb31a93d-2f08-495f-ac72-6f7d6023a9db" name="Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcProfileDef">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Profiles are used to describe cross-sections of swept solid geometry.</p>]]></Body>
            </Definition>
          </Definitions>
          <Rules>
            <AttributeRule AttributeName="ProfileType">
              <EntityRules>
                <EntityRule EntityName="IfcProfileTypeEnum" />
              </EntityRules>
            </AttributeRule>
            <AttributeRule AttributeName="ProfileName">
              <EntityRules>
                <EntityRule EntityName="IfcLabel" />
              </EntityRules>
            </AttributeRule>
          </Rules>
          <SubTemplates>
            <ConceptTemplate uuid="c375c12b-7e67-435f-8b70-b581db356991" name="Arbitrary Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcProfileDef">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Arbitrary profile defintions are used to describe cross-sections of swept solid geometry using curve segments defined by closed two-dimensional curves.</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="ProfileType">
                  <EntityRules>
                    <EntityRule EntityName="IfcProfileTypeEnum" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="ProfileName">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
              </Rules>
              <SubTemplates>
                <ConceptTemplate uuid="0373a86a-1387-45bd-bf09-bb3cc39092d9" name="PolyCurve Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcArbitraryClosedProfileDef">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>Poly curve profile definitons define the closed two-dimensional curve used for the cross-section by a indexed poly curve having straight and circular arc segments.</p>

<blockquote class="note">NOTE&nbsp; The indexed poly curve has been introduced to provide a less complex and less data set size consuming definition compared to the composite curve.</blockquote>]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="ProfileType">
                      <EntityRules>
                        <EntityRule EntityName="IfcProfileTypeEnum" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="ProfileName">
                      <EntityRules>
                        <EntityRule EntityName="IfcLabel" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="OuterCurve">
                      <EntityRules>
                        <EntityRule EntityName="IfcIndexedPolyCurve">
                          <AttributeRules>
                            <AttributeRule AttributeName="Points">
                              <EntityRules>
                                <EntityRule EntityName="IfcCartesianPointList2D" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Segments">
                              <EntityRules>
                                <EntityRule EntityName="IfcLineIndex" />
                                <EntityRule EntityName="IfcArcIndex" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="SelfIntersect">
                              <EntityRules>
                                <EntityRule EntityName="IfcBoolean" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
                <ConceptTemplate uuid="d3b8661b-e65b-4077-adc7-c6742d219691" name="PolyCurve with Voids Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcArbitraryProfileDefWithVoids">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[<p>Poly curve profile definitons define the closed two-dimensional curve used for the cross-section by a indexed poly curve having straight and circular arc segments.</p>

<blockquote class="note">NOTE&nbsp; The indexed poly curve has been introduced to provide a less complex and less data set size consuming definition compared to the composite curve.</blockquote>]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="ProfileType">
                      <EntityRules>
                        <EntityRule EntityName="IfcProfileTypeEnum" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="ProfileName">
                      <EntityRules>
                        <EntityRule EntityName="IfcLabel" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="OuterCurve">
                      <EntityRules>
                        <EntityRule EntityName="IfcIndexedPolyCurve">
                          <AttributeRules>
                            <AttributeRule AttributeName="Points">
                              <EntityRules>
                                <EntityRule EntityName="IfcCartesianPointList2D" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Segments">
                              <EntityRules>
                                <EntityRule EntityName="IfcArcIndex" />
                                <EntityRule EntityName="IfcLineIndex" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="SelfIntersect">
                              <EntityRules>
                                <EntityRule EntityName="IfcBoolean" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="InnerCurves">
                      <EntityRules>
                        <EntityRule EntityName="IfcIndexedPolyCurve" />
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
              </SubTemplates>
            </ConceptTemplate>
            <ConceptTemplate uuid="905ac767-45ac-4c2e-accc-89538baff207" name="Parameterized Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcParameterizedProfileDef">
              <Rules>
                <AttributeRule AttributeName="ProfileType">
                  <EntityRules>
                    <EntityRule EntityName="IfcProfileTypeEnum" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="ProfileName">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Position">
                  <EntityRules>
                    <EntityRule EntityName="IfcAxis2Placement2D">
                      <AttributeRules>
                        <AttributeRule AttributeName="Location">
                          <EntityRules>
                            <EntityRule EntityName="IfcCartesianPoint" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="RefDirection">
                          <EntityRules>
                            <EntityRule EntityName="IfcDirection" />
                          </EntityRules>
                        </AttributeRule>
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
              </Rules>
              <SubTemplates>
                <ConceptTemplate uuid="f63e9810-ac6e-43bf-9402-6ae9152b9b50" name="Standardized Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcParameterizedProfileDef">
                  <Rules>
                    <AttributeRule AttributeName="ProfileType">
                      <EntityRules>
                        <EntityRule EntityName="IfcProfileTypeEnum" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="ProfileName">
                      <EntityRules>
                        <EntityRule EntityName="IfcLabel" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="Position">
                      <EntityRules>
                        <EntityRule EntityName="IfcAxis2Placement2D">
                          <AttributeRules>
                            <AttributeRule AttributeName="Location">
                              <EntityRules>
                                <EntityRule EntityName="IfcCartesianPoint" />
                                <EntityRule EntityName="IfcCartesianPoint" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="RefDirection">
                              <EntityRules>
                                <EntityRule EntityName="IfcDirection" />
                                <EntityRule EntityName="IfcDirection" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                        <EntityRule EntityName="IfcAxis2Placement2D" />
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                  <SubTemplates>
                    <ConceptTemplate uuid="cb6ab841-6d4f-4a4c-81e8-3cc15d415ddc" name="C-Shape Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcCShapeProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcAxis2Placement2D" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Depth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Width">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="WallThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Girth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="InternalFilletRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="6e083289-49f9-4762-9f5c-c17ad2adde05" name="I-Shape Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcIShapeProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcAxis2Placement2D" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="OverallWidth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="OverallDepth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="WebThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FilletRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeEdgeRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeSlope">
                          <EntityRules>
                            <EntityRule EntityName="IfcPlaneAngleMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="58f49a6b-501c-4091-9f0d-94461c9aeedf" name="I-Shape Asymmetric Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcAsymmetricIShapeProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcAxis2Placement2D" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="BottomFlangeWidth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="OverallDepth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="WebThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="BottomFlangeThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="BottomFlangeFilletRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="TopFlangeWidth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="TopFlangeThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="TopFlangeFilletRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="BottomFlangeEdgeRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="BottomFlangeSlope">
                          <EntityRules>
                            <EntityRule EntityName="IfcPlaneAngleMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="TopFlangeEdgeRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="TopFlangeSlope">
                          <EntityRules>
                            <EntityRule EntityName="IfcPlaneAngleMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="5ab5115d-9303-4e49-ab12-1d304699c4c6" name="L-Shape Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcLShapeProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcAxis2Placement2D" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Depth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Width">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Thickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FilletRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="EdgeRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="LegSlope">
                          <EntityRules>
                            <EntityRule EntityName="IfcPlaneAngleMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="4a1f45eb-4545-490d-a50f-3e2d9106aa28" name="T-Shape Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcTShapeProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcAxis2Placement2D" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Depth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeWidth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="WebThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FilletRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeEdgeRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="WebEdgeRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="WebSlope">
                          <EntityRules>
                            <EntityRule EntityName="IfcPlaneAngleMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeSlope">
                          <EntityRules>
                            <EntityRule EntityName="IfcPlaneAngleMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="040b46df-d4d7-4457-bf8b-5084ff667791" name="U-Shape Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcUShapeProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcAxis2Placement2D" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Depth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeWidth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="WebThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FilletRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="EdgeRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeSlope">
                          <EntityRules>
                            <EntityRule EntityName="IfcPlaneAngleMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="0c6acada-771d-4c1a-a61d-1a2299006f06" name="Z-Shape Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcZShapeProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcAxis2Placement2D" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Depth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeWidth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="WebThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FlangeThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FilletRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="EdgeRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                  </SubTemplates>
                </ConceptTemplate>
                <ConceptTemplate uuid="f729c7c5-f380-4b9b-82d9-bde0cd1c8ebc" name="Basic Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcParameterizedProfileDef">
                  <Rules>
                    <AttributeRule AttributeName="ProfileType">
                      <EntityRules>
                        <EntityRule EntityName="IfcProfileTypeEnum" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="ProfileName">
                      <EntityRules>
                        <EntityRule EntityName="IfcLabel" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="Position">
                      <EntityRules>
                        <EntityRule EntityName="IfcAxis2Placement2D">
                          <AttributeRules>
                            <AttributeRule AttributeName="Location">
                              <EntityRules>
                                <EntityRule EntityName="IfcCartesianPoint" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="RefDirection">
                              <EntityRules>
                                <EntityRule EntityName="IfcDirection" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                  <SubTemplates>
                    <ConceptTemplate uuid="ea76b70d-c3cd-46c6-bf07-8cf8eb432001" name="Rectangle Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcRectangleProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="XDim">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="YDim">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="52e935cb-1ec6-421a-862d-1388ae738028" name="Rectangle Hollow Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcRectangleHollowProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="XDim">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="YDim">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="WallThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="InnerFilletRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="OuterFilletRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcNonNegativeLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="cb90635e-74e3-4408-aebc-7efb49edbb8c" name="Rectangle Rounded Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcRoundedRectangleProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="XDim">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="YDim">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="RoundingRadius">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="859be386-ac25-46f2-a11b-00f6b6b779ed" name="Circle Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcCircleProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Radius">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="7bfa1814-95e5-4fe5-afd9-83eb7a4366e1" name="Circle Hollow Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcCircleHollowProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Radius">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="WallThickness">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="ecb82772-374e-4ab3-acde-418e73915a24" name="Ellipse Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcEllipseProfileDef">
                      <Rules>
                        <AttributeRule AttributeName="ProfileType">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileTypeEnum" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ProfileName">
                          <EntityRules>
                            <EntityRule EntityName="IfcLabel" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement2D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="SemiAxis1">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="SemiAxis2">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                  </SubTemplates>
                </ConceptTemplate>
              </SubTemplates>
            </ConceptTemplate>
            <ConceptTemplate uuid="732f8f2b-caf9-4e31-b920-1fe65db6ce5d" name="Derived Profile Definiton" status="sample" applicableSchema="IFC4" applicableEntity="IfcProfileDef">
              <Rules>
                <AttributeRule AttributeName="ProfileType">
                  <EntityRules>
                    <EntityRule EntityName="IfcProfileTypeEnum" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="ProfileName">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
              </Rules>
              <SubTemplates>
                <ConceptTemplate uuid="3167ade4-0219-4ec8-861f-b9e19fe6c962" name="Transformed Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcDerivedProfileDef">
                  <Rules>
                    <AttributeRule AttributeName="ProfileType">
                      <EntityRules>
                        <EntityRule EntityName="IfcProfileTypeEnum" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="ProfileName">
                      <EntityRules>
                        <EntityRule EntityName="IfcLabel" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="ParentProfile">
                      <EntityRules>
                        <EntityRule EntityName="IfcProfileDef" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="Operator">
                      <EntityRules>
                        <EntityRule EntityName="IfcCartesianTransformationOperator2D" />
                        <EntityRule EntityName="IfcCartesianTransformationOperator2DnonUniform" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="Label">
                      <EntityRules>
                        <EntityRule EntityName="IfcLabel" />
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
                <ConceptTemplate uuid="e0c10888-71e0-4270-83ea-63dc590554be" name="Composite Profile Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcCompositeProfileDef">
                  <Definitions>
                    <Definition>
                      <Body><![CDATA[]]></Body>
                    </Definition>
                  </Definitions>
                  <Rules>
                    <AttributeRule AttributeName="ProfileType">
                      <EntityRules>
                        <EntityRule EntityName="IfcProfileTypeEnum" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="ProfileName">
                      <EntityRules>
                        <EntityRule EntityName="IfcLabel" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="Profiles">
                      <EntityRules>
                        <EntityRule EntityName="IfcProfileDef" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="Label">
                      <EntityRules>
                        <EntityRule EntityName="IfcLabel" />
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
              </SubTemplates>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
        <ConceptTemplate uuid="f77f739d-c1f1-4bc5-95c3-b7585e0a9f54" name="Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcGeometricRepresentationItem">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Geometric items are used to describe shape representations of products.</p>]]></Body>
            </Definition>
          </Definitions>
          <SubTemplates>
            <ConceptTemplate uuid="93164c8d-4929-4c01-b9b3-f2ec2fdb6da3" name="Solid Model Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcSolidModel">
              <SubTemplates>
                <ConceptTemplate uuid="e3b43dbe-c09f-485e-aceb-f330311d35ce" name="Swept Solid Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcSweptAreaSolid">
                  <Rules>
                    <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                      <EntityRules>
                        <EntityRule EntityName="IfcProfileDef" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="StyledByItem">
                      <EntityRules>
                        <EntityRule EntityName="IfcStyledItem">
                          <AttributeRules>
                            <AttributeRule AttributeName="Name">
                              <EntityRules>
                                <EntityRule EntityName="IfcLabel" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Styles">
                              <EntityRules>
                                <EntityRule EntityName="IfcSurfaceStyle">
                                  <References>
                                    <Template ref="ea473562-c1e5-4dc7-ad75-ff3492576e36" />
                                  </References>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                  <SubTemplates>
                    <ConceptTemplate uuid="a780bd37-4a7a-4cce-b947-4a6678487bda" name="Extruded Area Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcExtrudedAreaSolid">
                      <Rules>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement3D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Axis">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ExtrudedDirection">
                          <EntityRules>
                            <EntityRule EntityName="IfcDirection" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Depth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileDef" />
                            <EntityRule EntityName="IfcProfileDef" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="StyledByItem">
                          <EntityRules>
                            <EntityRule EntityName="IfcStyledItem">
                              <AttributeRules>
                                <AttributeRule AttributeName="Styles">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcSurfaceStyle" />
                                    <EntityRule EntityName="IfcSurfaceStyle" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcStyledItem" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                      <SubTemplates>
                        <ConceptTemplate uuid="394297ba-f77f-4107-a9cc-9ecb11744de6" name="Extruded Area PolyCurve Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcExtrudedAreaSolid">
                          <Rules>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RefDirection">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="ExtrudedDirection">
                              <EntityRules>
                                <EntityRule EntityName="IfcDirection" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Depth">
                              <EntityRules>
                                <EntityRule EntityName="IfcPositiveLengthMeasure" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcArbitraryClosedProfileDef">
                                  <References>
                                    <Template ref="0373a86a-1387-45bd-bf09-bb3cc39092d9" />
                                  </References>
                                </EntityRule>
                                <EntityRule EntityName="IfcArbitraryProfileDefWithVoids">
                                  <References>
                                    <Template ref="d3b8661b-e65b-4077-adc7-c6742d219691" />
                                  </References>
                                </EntityRule>
                                <EntityRule EntityName="IfcProfileDef" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcStyledItem" />
                                <EntityRule EntityName="IfcStyledItem" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                        <ConceptTemplate uuid="9fec7664-7df5-4897-9674-b5991ad8abcd" name="Extruded Area Standardized Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcExtrudedAreaSolid">
                          <Rules>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RefDirection">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="ExtrudedDirection">
                              <EntityRules>
                                <EntityRule EntityName="IfcDirection" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Depth">
                              <EntityRules>
                                <EntityRule EntityName="IfcPositiveLengthMeasure" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcProfileDef">
                                  <References>
                                    <Template ref="cb6ab841-6d4f-4a4c-81e8-3cc15d415ddc" />
                                  </References>
                                </EntityRule>
                                <EntityRule EntityName="IfcProfileDef" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcStyledItem" />
                                <EntityRule EntityName="IfcStyledItem" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                        <ConceptTemplate uuid="46b7a7e6-0d7c-4e73-9397-605abe9fe7b9" name="Extruded Area Basic Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcExtrudedAreaSolid">
                          <Rules>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RefDirection">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="ExtrudedDirection">
                              <EntityRules>
                                <EntityRule EntityName="IfcDirection" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Depth">
                              <EntityRules>
                                <EntityRule EntityName="IfcPositiveLengthMeasure" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcProfileDef">
                                  <References>
                                    <Template ref="ea76b70d-c3cd-46c6-bf07-8cf8eb432001" />
                                  </References>
                                </EntityRule>
                                <EntityRule EntityName="IfcProfileDef" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcStyledItem" />
                                <EntityRule EntityName="IfcStyledItem" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                        <ConceptTemplate uuid="4fb6fbe6-4e6a-4d5c-ae94-6de37880eb8c" name="Extruded Area Composite Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcExtrudedAreaSolid">
                          <Rules>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RefDirection">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="ExtrudedDirection">
                              <EntityRules>
                                <EntityRule EntityName="IfcDirection" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Depth">
                              <EntityRules>
                                <EntityRule EntityName="IfcPositiveLengthMeasure" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcProfileDef" />
                                <EntityRule EntityName="IfcProfileDef" />
                                <EntityRule EntityName="IfcCompositeProfileDef">
                                  <References>
                                    <Template ref="e0c10888-71e0-4270-83ea-63dc590554be" />
                                  </References>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcStyledItem" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                      </SubTemplates>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="3e7cfdff-ee51-4605-ba35-a3594f27c49c" name="Extruded Area Tapered Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcExtrudedAreaSolidTapered">
                      <Rules>
                        <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileDef" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="StyledByItem">
                          <EntityRules>
                            <EntityRule EntityName="IfcStyledItem">
                              <AttributeRules>
                                <AttributeRule AttributeName="Name">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Styles">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcSurfaceStyle" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement3D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Axis">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ExtrudedDirection">
                          <EntityRules>
                            <EntityRule EntityName="IfcDirection" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Depth">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveLengthMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                      <SubTemplates>
                        <ConceptTemplate uuid="8867b942-2f8c-4eb7-9408-ed41c28dde63" name="Extruded Area Tapered PolyCurve Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcExtrudedAreaSolidTapered">
                          <Rules>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcProfileDef">
                                  <References>
                                    <Template ref="d3b8661b-e65b-4077-adc7-c6742d219691" />
                                  </References>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="EndSweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcDerivedProfileDef">
                                  <References>
                                    <Template ref="3167ade4-0219-4ec8-861f-b9e19fe6c962" />
                                  </References>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RefDirection">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcAxis2Placement3D" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="ExtrudedDirection">
                              <EntityRules>
                                <EntityRule EntityName="IfcDirection" />
                                <EntityRule EntityName="IfcDirection" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Depth">
                              <EntityRules>
                                <EntityRule EntityName="IfcPositiveLengthMeasure" />
                                <EntityRule EntityName="IfcPositiveLengthMeasure" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                        <ConceptTemplate uuid="2f62fd31-ac66-414f-87d5-4c1045060f63" name="Extruded Area Tapered Parameterized Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcExtrudedAreaSolidTapered">
                          <Rules>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcProfileDef" />
                                <EntityRule EntityName="IfcParameterizedProfileDef">
                                  <References>
                                    <Template ref="ea76b70d-c3cd-46c6-bf07-8cf8eb432001" />
                                  </References>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RefDirection">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcAxis2Placement3D" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="ExtrudedDirection">
                              <EntityRules>
                                <EntityRule EntityName="IfcDirection" />
                                <EntityRule EntityName="IfcDirection" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Depth">
                              <EntityRules>
                                <EntityRule EntityName="IfcPositiveLengthMeasure" />
                                <EntityRule EntityName="IfcPositiveLengthMeasure" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="EndSweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcParameterizedProfileDef" />
                                <EntityRule EntityName="IfcDerivedProfileDef" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                      </SubTemplates>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="c1529bd2-e85a-4748-bc9f-98ba0a730c35" name="Revolved Area Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcRevolvedAreaSolid">
                      <Rules>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement3D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Axis">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Axis">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis1Placement" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Angle">
                          <EntityRules>
                            <EntityRule EntityName="IfcPlaneAngleMeasure" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileDef" />
                            <EntityRule EntityName="IfcProfileDef" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="StyledByItem">
                          <EntityRules>
                            <EntityRule EntityName="IfcStyledItem">
                              <AttributeRules>
                                <AttributeRule AttributeName="Styles">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcSurfaceStyle" />
                                    <EntityRule EntityName="IfcSurfaceStyle" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcStyledItem" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                      <SubTemplates>
                        <ConceptTemplate uuid="38ca694b-42e0-47ed-b529-e5184a65c04c" name="Revolved Area PolyCurve Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcRevolvedAreaSolid">
                          <Rules>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RefDirection">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Axis">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis1Placement">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Angle">
                              <EntityRules>
                                <EntityRule EntityName="IfcPlaneAngleMeasure" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcArbitraryProfileDefWithVoids">
                                  <References>
                                    <Template ref="d3b8661b-e65b-4077-adc7-c6742d219691" />
                                  </References>
                                </EntityRule>
                                <EntityRule EntityName="IfcProfileDef" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcStyledItem" />
                                <EntityRule EntityName="IfcStyledItem" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                        <ConceptTemplate uuid="ea1b17db-5e78-44b2-b6b3-b2918f750f0d" name="Revolved Area Standardized Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcRevolvedAreaSolid">
                          <Rules>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RefDirection">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Axis">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis1Placement" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Angle">
                              <EntityRules>
                                <EntityRule EntityName="IfcPlaneAngleMeasure" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcProfileDef">
                                  <References>
                                    <Template ref="cb6ab841-6d4f-4a4c-81e8-3cc15d415ddc" />
                                  </References>
                                </EntityRule>
                                <EntityRule EntityName="IfcProfileDef" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcStyledItem" />
                                <EntityRule EntityName="IfcStyledItem" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                        <ConceptTemplate uuid="11a2522e-3098-47dc-9aec-67943ce3d893" name="Revolved Area Basic Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcRevolvedAreaSolid">
                          <Rules>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RefDirection">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Axis">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis1Placement" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Angle">
                              <EntityRules>
                                <EntityRule EntityName="IfcPlaneAngleMeasure" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcProfileDef">
                                  <References>
                                    <Template ref="ea76b70d-c3cd-46c6-bf07-8cf8eb432001" />
                                  </References>
                                </EntityRule>
                                <EntityRule EntityName="IfcProfileDef" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcStyledItem" />
                                <EntityRule EntityName="IfcStyledItem" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                      </SubTemplates>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="94e40626-dc03-4207-80f3-43a1bae67942" name="Revolved Area Tapered Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcRevolvedAreaSolidTapered">
                      <Rules>
                        <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileDef" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="StyledByItem">
                          <EntityRules>
                            <EntityRule EntityName="IfcStyledItem">
                              <AttributeRules>
                                <AttributeRule AttributeName="Name">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Styles">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcSurfaceStyle" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement3D">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Axis">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="RefDirection">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Axis">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis1Placement">
                              <AttributeRules>
                                <AttributeRule AttributeName="Location">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcCartesianPoint" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Axis">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcDirection" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Angle">
                          <EntityRules>
                            <EntityRule EntityName="IfcPlaneAngleMeasure" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                      <SubTemplates>
                        <ConceptTemplate uuid="24ad085d-84e5-4ff4-83e9-b54198977252" name="Revolved Area Tapered PolyCurve Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcRevolvedAreaSolidTapered">
                          <Rules>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcProfileDef" />
                                <EntityRule EntityName="IfcArbitraryClosedProfileDef" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RefDirection">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Axis">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis1Placement">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Angle">
                              <EntityRules>
                                <EntityRule EntityName="IfcPlaneAngleMeasure" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="EndSweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcDerivedProfileDef" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                        <ConceptTemplate uuid="0cc6f0cf-6785-41a3-ae6f-28f8465beced" name="Revolved Area Tapered Parameterized Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcRevolvedAreaSolidTapered">
                          <Rules>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcProfileDef" />
                                <EntityRule EntityName="IfcParameterizedProfileDef" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="RefDirection">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Axis">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis1Placement">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Location">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcCartesianPoint" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Axis">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcDirection" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Angle">
                              <EntityRules>
                                <EntityRule EntityName="IfcPlaneAngleMeasure" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="EndSweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcParameterizedProfileDef" />
                                <EntityRule EntityName="IfcDerivedProfileDef" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                      </SubTemplates>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="f7ad2d3f-6b01-4402-a595-1458fe3a5f2b" name="SurfaceCurve SweptArea Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcSurfaceCurveSweptAreaSolid">
                      <Rules>
                        <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileDef" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement3D" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Directrix">
                          <EntityRules>
                            <EntityRule EntityName="IfcIndexedPolyCurve" />
                            <EntityRule EntityName="IfcPcurve" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="StartParam">
                          <EntityRules>
                            <EntityRule EntityName="IfcParameterValue" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="EndParam">
                          <EntityRules>
                            <EntityRule EntityName="IfcParameterValue" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="ReferenceSurface">
                          <EntityRules>
                            <EntityRule EntityName="IfcSurfaceOfLinearExtrusion" />
                            <EntityRule EntityName="IfcSurfaceOfRevolution" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="StyledByItem">
                          <EntityRules>
                            <EntityRule EntityName="IfcStyledItem">
                              <AttributeRules>
                                <AttributeRule AttributeName="Styles">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcSurfaceStyle" />
                                    <EntityRule EntityName="IfcSurfaceStyle" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcStyledItem" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                      <SubTemplates>
                        <ConceptTemplate uuid="586efa64-38aa-48ba-b8b5-d1fafe6b72f2" name="SurfaceCurve SweptArea PolyCurve Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcSurfaceCurveSweptAreaSolid">
                          <Rules>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcProfileDef">
                                  <References>
                                    <Template ref="d3b8661b-e65b-4077-adc7-c6742d219691" />
                                  </References>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Directrix">
                              <EntityRules>
                                <EntityRule EntityName="IfcIndexedPolyCurve" />
                                <EntityRule EntityName="IfcPcurve" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StartParam">
                              <EntityRules>
                                <EntityRule EntityName="IfcParameterValue" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="EndParam">
                              <EntityRules>
                                <EntityRule EntityName="IfcParameterValue" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="ReferenceSurface">
                              <EntityRules>
                                <EntityRule EntityName="IfcSurfaceOfLinearExtrusion" />
                                <EntityRule EntityName="IfcSurfaceOfRevolution" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcStyledItem" />
                                <EntityRule EntityName="IfcStyledItem" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                      </SubTemplates>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="e4b08944-e0de-4ec6-95f6-77a1a2593db1" name="FixedReference SweptArea Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcFixedReferenceSweptAreaSolid">
                      <Rules>
                        <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                          <EntityRules>
                            <EntityRule EntityName="IfcProfileDef" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Position">
                          <EntityRules>
                            <EntityRule EntityName="IfcAxis2Placement3D" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Directrix">
                          <EntityRules>
                            <EntityRule EntityName="IfcIndexedPolyCurve" />
                            <EntityRule EntityName="IfcPcurve" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="StartParam">
                          <EntityRules>
                            <EntityRule EntityName="IfcParameterValue" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="EndParam">
                          <EntityRules>
                            <EntityRule EntityName="IfcParameterValue" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="FixedReference">
                          <EntityRules>
                            <EntityRule EntityName="IfcDirection" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="StyledByItem">
                          <EntityRules>
                            <EntityRule EntityName="IfcStyledItem">
                              <AttributeRules>
                                <AttributeRule AttributeName="Styles">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcSurfaceStyle" />
                                    <EntityRule EntityName="IfcSurfaceStyle" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Name">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLabel" />
                                    <EntityRule EntityName="IfcLabel" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcStyledItem" />
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                      <SubTemplates>
                        <ConceptTemplate uuid="cc432c25-f0e3-4838-bd77-f51ecac5b0df" name="FixedReference SweptArea PolyCurve Profile" status="sample" applicableSchema="IFC4" applicableEntity="IfcFixedReferenceSweptAreaSolid">
                          <Rules>
                            <AttributeRule RuleID="Profile" AttributeName="SweptArea">
                              <EntityRules>
                                <EntityRule EntityName="IfcProfileDef">
                                  <References>
                                    <Template ref="d3b8661b-e65b-4077-adc7-c6742d219691" />
                                  </References>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Position">
                              <EntityRules>
                                <EntityRule EntityName="IfcAxis2Placement3D" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Directrix">
                              <EntityRules>
                                <EntityRule EntityName="IfcIndexedPolyCurve" />
                                <EntityRule EntityName="IfcPcurve" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StartParam">
                              <EntityRules>
                                <EntityRule EntityName="IfcParameterValue" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="EndParam">
                              <EntityRules>
                                <EntityRule EntityName="IfcParameterValue" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="FixedReference">
                              <EntityRules>
                                <EntityRule EntityName="IfcDirection" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="StyledByItem">
                              <EntityRules>
                                <EntityRule EntityName="IfcStyledItem">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Styles">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                        <EntityRule EntityName="IfcSurfaceStyle" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                                <EntityRule EntityName="IfcStyledItem" />
                                <EntityRule EntityName="IfcStyledItem" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                      </SubTemplates>
                    </ConceptTemplate>
                  </SubTemplates>
                </ConceptTemplate>
                <ConceptTemplate uuid="bb55a495-9092-4230-afc6-fb0360d7d452" name="Faceted Brep Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcFacetedBrep">
                  <Rules>
                    <AttributeRule AttributeName="Outer">
                      <EntityRules>
                        <EntityRule EntityName="IfcClosedShell">
                          <AttributeRules>
                            <AttributeRule AttributeName="CfsFaces">
                              <EntityRules>
                                <EntityRule EntityName="IfcFaceSurface">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Bounds">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcFaceBound">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="Bound">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcPolyLoop">
                                                  <AttributeRules>
                                                    <AttributeRule AttributeName="Polygon">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcCartesianPoint" />
                                                      </EntityRules>
                                                    </AttributeRule>
                                                  </AttributeRules>
                                                </EntityRule>
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="Orientation">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcBoolean" />
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                        <EntityRule EntityName="IfcFaceOuterBound">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="Bound">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcPolyLoop">
                                                  <AttributeRules>
                                                    <AttributeRule AttributeName="Polygon">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcCartesianPoint" />
                                                      </EntityRules>
                                                    </AttributeRule>
                                                  </AttributeRules>
                                                </EntityRule>
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="Orientation">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcBoolean" />
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
                <ConceptTemplate uuid="3b6904cd-5852-4d29-b39e-64b326a74db0" name="Advanced Brep Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcAdvancedBrep">
                  <Rules>
                    <AttributeRule AttributeName="Outer">
                      <EntityRules>
                        <EntityRule EntityName="IfcClosedShell">
                          <AttributeRules>
                            <AttributeRule AttributeName="CfsFaces">
                              <EntityRules>
                                <EntityRule EntityName="IfcAdvancedFace">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Bounds">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcFaceOuterBound">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="Orientation">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcBoolean" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="Bound">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcEdgeLoop">
                                                  <AttributeRules>
                                                    <AttributeRule AttributeName="EdgeList">
                                                      <EntityRules>
                                                        <EntityRule EntityName="IfcOrientedEdge">
                                                          <AttributeRules>
                                                            <AttributeRule AttributeName="EdgeElement">
                                                              <EntityRules>
                                                                <EntityRule EntityName="IfcEdgeCurve">
                                                                  <AttributeRules>
                                                                    <AttributeRule AttributeName="EdgeStart">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcVertexPoint" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="EdgeEnd">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcVertexPoint" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="EdgeGeometry">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcRationalBSplineCurveWithKnots">
                                                                          <AttributeRules>
                                                                            <AttributeRule AttributeName="Degree">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcInteger" />
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                            <AttributeRule AttributeName="ControlPointsList">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcCartesianPoint" />
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                            <AttributeRule AttributeName="CurveForm">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcBSplineCurveForm" />
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                            <AttributeRule AttributeName="ClosedCurve">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcLogical" />
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                            <AttributeRule AttributeName="SelfIntersect">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcLogical" />
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                            <AttributeRule AttributeName="KnotMultiplicities">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcInteger" />
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                            <AttributeRule AttributeName="Knots">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcParameterValue" />
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                            <AttributeRule AttributeName="KnotSpec">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcKnotType" />
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                            <AttributeRule AttributeName="WeightsData">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcReal" />
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                          </AttributeRules>
                                                                        </EntityRule>
                                                                        <EntityRule EntityName="IfcPolyline">
                                                                          <AttributeRules>
                                                                            <AttributeRule AttributeName="Points">
                                                                              <EntityRules>
                                                                                <EntityRule EntityName="IfcCartesianPoint" />
                                                                              </EntityRules>
                                                                            </AttributeRule>
                                                                          </AttributeRules>
                                                                        </EntityRule>
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                    <AttributeRule AttributeName="SameSense">
                                                                      <EntityRules>
                                                                        <EntityRule EntityName="IfcBoolean" />
                                                                      </EntityRules>
                                                                    </AttributeRule>
                                                                  </AttributeRules>
                                                                </EntityRule>
                                                              </EntityRules>
                                                            </AttributeRule>
                                                          </AttributeRules>
                                                        </EntityRule>
                                                      </EntityRules>
                                                    </AttributeRule>
                                                  </AttributeRules>
                                                </EntityRule>
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="FaceSurface">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcRationalBSplineSurfaceWithKnots">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="UDegree">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcInteger" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="VDegree">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcInteger" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="ControlPointsList">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcCartesianPoint" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="UClosed">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcLogical" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="VClosed">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcLogical" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="UMultiplicities">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcInteger" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="VMultiplicities">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcInteger" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="UKnots">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcParameterValue" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="VKnots">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcParameterValue" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="KnotSpec">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcKnotType" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="WeightsData">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcReal" />
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                        <EntityRule EntityName="IfcCylindricalSurface">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="Position">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcAxis2Placement3D" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="Radius">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcPositiveLengthMeasure" />
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                        <EntityRule EntityName="IfcSphericalSurface" />
                                        <EntityRule EntityName="IfcToroidalSurface">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="Position">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcAxis2Placement3D" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="MajorRadius">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcPositiveLengthMeasure" />
                                              </EntityRules>
                                            </AttributeRule>
                                            <AttributeRule AttributeName="MinorRadius">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcPositiveLengthMeasure" />
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                        <EntityRule EntityName="IfcPlane">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="Position">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcAxis2Placement3D" />
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
              </SubTemplates>
            </ConceptTemplate>
            <ConceptTemplate uuid="66059531-56c6-4010-9065-c8cbd379767b" name="Surface Model Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcGeometricRepresentationItem">
              <SubTemplates>
                <ConceptTemplate uuid="a46de0c5-20f2-4f88-b037-5fb255182827" name="Tessellated Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcTessellatedFaceSet">
                  <SubTemplates>
                    <ConceptTemplate uuid="677bd4ce-e38b-4581-b40d-c9eaa2416971" name="Triangulated Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcTriangulatedFaceSet">
                      <Rules>
                        <AttributeRule AttributeName="Coordinates">
                          <EntityRules>
                            <EntityRule EntityName="IfcCartesianPointList3D">
                              <AttributeRules>
                                <AttributeRule AttributeName="CoordList">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLengthMeasure" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Normals">
                          <EntityRules>
                            <EntityRule EntityName="IfcParameterValue" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Closed">
                          <EntityRules>
                            <EntityRule EntityName="IfcBoolean" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="CoordIndex">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveInteger" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="PnIndex">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveInteger" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="HasColours">
                          <EntityRules>
                            <EntityRule EntityName="IfcIndexedColourMap">
                              <AttributeRules>
                                <AttributeRule AttributeName="Colours">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcColourRgbList">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="ColourList">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="ColourIndex">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcPositiveInteger" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Opacity">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                      <SubTemplates>
                        <ConceptTemplate uuid="8a96e670-c72c-4dde-933a-b8e9bffd6983" name="Triangulated Geometry With Textures" status="sample" applicableSchema="IFC4" applicableEntity="IfcTriangulatedFaceSet">
                          <Rules>
                            <AttributeRule AttributeName="Coordinates">
                              <EntityRules>
                                <EntityRule EntityName="IfcCartesianPointList3D">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="CoordList">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLengthMeasure" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Normals">
                              <EntityRules>
                                <EntityRule EntityName="IfcParameterValue" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Closed">
                              <EntityRules>
                                <EntityRule EntityName="IfcBoolean" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="CoordIndex">
                              <EntityRules>
                                <EntityRule EntityName="IfcPositiveInteger" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="HasColours">
                              <EntityRules>
                                <EntityRule EntityName="IfcIndexedColourMap">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Colours">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcColourRgbList">
                                          <AttributeRules>
                                            <AttributeRule AttributeName="ColourList">
                                              <EntityRules>
                                                <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                              </EntityRules>
                                            </AttributeRule>
                                          </AttributeRules>
                                        </EntityRule>
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="ColourIndex">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcPositiveInteger" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Opacity">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                        <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="HasTextures">
                              <EntityRules>
                                <EntityRule EntityName="IfcIndexedTriangleTextureMap">
                                  <References>
                                    <Template ref="36f5b37a-5390-4743-a8a5-2b29fa5d50bd" />
                                  </References>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="PnIndex">
                              <EntityRules>
                                <EntityRule EntityName="IfcPositiveInteger" />
                              </EntityRules>
                            </AttributeRule>
                          </Rules>
                        </ConceptTemplate>
                      </SubTemplates>
                    </ConceptTemplate>
                    <ConceptTemplate uuid="72c0b316-6b48-478d-91fa-6e4b5a781b07" name="Polygonal Geometry" status="sample" applicableSchema="IFC4" applicableEntity="IfcPolygonalFaceSet">
                      <Rules>
                        <AttributeRule AttributeName="Coordinates">
                          <EntityRules>
                            <EntityRule EntityName="IfcCartesianPointList3D">
                              <AttributeRules>
                                <AttributeRule AttributeName="CoordList">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLengthMeasure" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Closed">
                          <EntityRules>
                            <EntityRule EntityName="IfcBoolean" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Faces">
                          <EntityRules>
                            <EntityRule EntityName="IfcIndexedPolygonalFace">
                              <AttributeRules>
                                <AttributeRule AttributeName="CoordIndex">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcPositiveInteger" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                            <EntityRule EntityName="IfcIndexedPolygonalFaceWithVoids">
                              <AttributeRules>
                                <AttributeRule AttributeName="CoordIndex">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcPositiveInteger" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="InnerCoordIndices">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcPositiveInteger" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="PnIndex">
                          <EntityRules>
                            <EntityRule EntityName="IfcPositiveInteger" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="HasColours">
                          <EntityRules>
                            <EntityRule EntityName="IfcIndexedColourMap">
                              <AttributeRules>
                                <AttributeRule AttributeName="Opacity">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="Colours">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcColourRgbList">
                                      <AttributeRules>
                                        <AttributeRule AttributeName="ColourList">
                                          <EntityRules>
                                            <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                          </EntityRules>
                                        </AttributeRule>
                                      </AttributeRules>
                                    </EntityRule>
                                  </EntityRules>
                                </AttributeRule>
                                <AttributeRule AttributeName="ColourIndex">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcPositiveInteger" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                      </Rules>
                    </ConceptTemplate>
                  </SubTemplates>
                </ConceptTemplate>
              </SubTemplates>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
        <ConceptTemplate uuid="d795e480-777d-4e81-9482-08066f67d23e" name="Geometry Styles" status="sample" applicableSchema="IFC4" applicableEntity="IfcPresentationStyle">
          <Rules>
            <AttributeRule AttributeName="Name">
              <EntityRules>
                <EntityRule EntityName="IfcLabel" />
              </EntityRules>
            </AttributeRule>
          </Rules>
          <SubTemplates>
            <ConceptTemplate uuid="c3a806fc-db56-41dd-9b33-2e85c08692b2" name="Geometry Surface Style" status="sample" applicableSchema="IFC4" applicableEntity="IfcPresentationStyle">
              <SubTemplates>
                <ConceptTemplate uuid="ea473562-c1e5-4dc7-ad75-ff3492576e36" name="Surface Color Style" status="sample" applicableSchema="IFC4" applicableEntity="IfcSurfaceStyle">
                  <Rules>
                    <AttributeRule AttributeName="Styles">
                      <EntityRules>
                        <EntityRule EntityName="IfcSurfaceStyleShading">
                          <AttributeRules>
                            <AttributeRule AttributeName="SurfaceColour">
                              <EntityRules>
                                <EntityRule EntityName="IfcColourRgb" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                        <EntityRule EntityName="IfcSurfaceStyleRendering">
                          <AttributeRules>
                            <AttributeRule AttributeName="SurfaceColour">
                              <EntityRules>
                                <EntityRule EntityName="IfcColourRgb">
                                  <AttributeRules>
                                    <AttributeRule AttributeName="Name">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcLabel" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Red">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Green">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                      </EntityRules>
                                    </AttributeRule>
                                    <AttributeRule AttributeName="Blue">
                                      <EntityRules>
                                        <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                                      </EntityRules>
                                    </AttributeRule>
                                  </AttributeRules>
                                </EntityRule>
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="Transparency">
                              <EntityRules>
                                <EntityRule EntityName="IfcNormalisedRatioMeasure" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="DiffuseColour">
                              <EntityRules>
                                <EntityRule EntityName="IfcColourOrFactor" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="TransmissionColour">
                              <EntityRules>
                                <EntityRule EntityName="IfcColourOrFactor" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="DiffuseTransmissionColour">
                              <EntityRules>
                                <EntityRule EntityName="IfcColourOrFactor" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="ReflectionColour">
                              <EntityRules>
                                <EntityRule EntityName="IfcColourOrFactor" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="SpecularColour">
                              <EntityRules>
                                <EntityRule EntityName="IfcColourOrFactor" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="SpecularHighlight">
                              <EntityRules>
                                <EntityRule EntityName="IfcSpecularExponent" />
                              </EntityRules>
                            </AttributeRule>
                            <AttributeRule AttributeName="ReflectanceMethod">
                              <EntityRules>
                                <EntityRule EntityName="IfcReflectanceMethodEnum" />
                              </EntityRules>
                            </AttributeRule>
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="Name">
                      <EntityRules>
                        <EntityRule EntityName="IfcLabel" />
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="Side">
                      <EntityRules>
                        <EntityRule EntityName="IfcSurfaceSide" />
                      </EntityRules>
                    </AttributeRule>
                  </Rules>
                </ConceptTemplate>
              </SubTemplates>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
        <ConceptTemplate uuid="d9ea8f0e-f629-46b2-adf5-941da7bcc8bc" name="Material Definition" status="sample" applicableSchema="IFC4" applicableEntity="IfcMaterialDefinition">
          <SubTemplates>
            <ConceptTemplate uuid="5986b61a-b79f-44e0-a93f-9fddf470a4e1" name="Material" status="sample" applicableSchema="IFC4" applicableEntity="IfcMaterial">
              <Rules>
                <AttributeRule RuleID="MaterialName" AttributeName="Name">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Description">
                  <EntityRules>
                    <EntityRule EntityName="IfcText" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Category">
                  <EntityRules>
                    <EntityRule EntityName="IfcLabel" />
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
        <ConceptTemplate uuid="f8524756-81f5-48b8-81cf-d0249af70f8a" name="Material Styles" status="sample" applicableSchema="IFC4" applicableEntity="IfcMaterialDefinitionRepresentation">
          <SubTemplates>
            <ConceptTemplate uuid="ad1ec73c-6f9a-4f20-8c99-093920ee9308" name="Material Surface Style" status="sample" applicableSchema="IFC4" applicableEntity="IfcMaterialDefinitionRepresentation">
              <SubTemplates>
                <ConceptTemplate uuid="6e4e5d36-ea3c-46d5-a490-99abffb4e317" name="Material Surface Color Style" status="sample" applicableSchema="IFC4" applicableEntity="IfcMaterialDefinitionRepresentation" />
              </SubTemplates>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
        <ConceptTemplate uuid="52255fb8-7135-4f9b-9536-888f6849fa0a" name="Texture" status="sample" applicableSchema="IFC4" applicableEntity="IfcPresentationItem">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Texturing allows for realistic visualization of geometry, such that elements may be more easily and efficiently recognized, and construction details may be specifically indicated.</p>]]></Body>
            </Definition>
          </Definitions>
          <SubTemplates>
            <ConceptTemplate uuid="19574eae-52be-43e7-9124-79a9451486cb" name="Image Texture" status="sample" applicableSchema="IFC4" applicableEntity="IfcImageTexture">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Image textures are based on external files in common image formats such as PNG or JPEG. Such files may be located on servers according to absolute URLs, on the same server as the IFC file according to relative URLs, within the same local directory according to relative file path, within an IFC-ZIP file according to relative file path, or within an arbitrary directory according to absolute file path.</p>

<p>Absolute URLs are recommended for textures published at a location deemed to be permanent (independent of the building model data), while relative URLs are recommended for all other sharing scenarios. Local file paths should be avoided.</p>

<p>Scaling is supported to correlate the size of a texture with its physical dimensions, and enables usage of textures on parametric geometry such that texture coordinates need not be defined.</p>]]></Body>
                </Definition>
              </Definitions>
              <Rules>
                <AttributeRule AttributeName="Mode">
                  <EntityRules>
                    <EntityRule EntityName="IfcIdentifier" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="TextureTransform">
                  <EntityRules>
                    <EntityRule EntityName="IfcCartesianTransformationOperator2D">
                      <AttributeRules>
                        <AttributeRule AttributeName="Axis1">
                          <EntityRules>
                            <EntityRule EntityName="IfcDirection" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Axis2">
                          <EntityRules>
                            <EntityRule EntityName="IfcDirection" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="LocalOrigin">
                          <EntityRules>
                            <EntityRule EntityName="IfcCartesianPoint">
                              <AttributeRules>
                                <AttributeRule AttributeName="Coordinates">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLengthMeasure" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Scale" />
                      </AttributeRules>
                    </EntityRule>
                    <EntityRule EntityName="IfcCartesianTransformationOperator2DnonUniform">
                      <AttributeRules>
                        <AttributeRule AttributeName="Axis1">
                          <EntityRules>
                            <EntityRule EntityName="IfcDirection" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Axis2">
                          <EntityRules>
                            <EntityRule EntityName="IfcDirection" />
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="LocalOrigin">
                          <EntityRules>
                            <EntityRule EntityName="IfcCartesianPoint">
                              <AttributeRules>
                                <AttributeRule AttributeName="Coordinates">
                                  <EntityRules>
                                    <EntityRule EntityName="IfcLengthMeasure" />
                                  </EntityRules>
                                </AttributeRule>
                              </AttributeRules>
                            </EntityRule>
                          </EntityRules>
                        </AttributeRule>
                        <AttributeRule AttributeName="Scale" />
                        <AttributeRule AttributeName="Scale2" />
                      </AttributeRules>
                    </EntityRule>
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="Parameter">
                  <EntityRules>
                    <EntityRule EntityName="IfcIdentifier" />
                  </EntityRules>
                </AttributeRule>
                <AttributeRule AttributeName="URLReference">
                  <EntityRules>
                    <EntityRule EntityName="IfcURIReference" />
                  </EntityRules>
                </AttributeRule>
              </Rules>
            </ConceptTemplate>
            <ConceptTemplate uuid="59f2a46d-e55b-4d3a-98a0-585f10b517f1" name="Texture Map" status="sample" applicableSchema="IFC4" applicableEntity="IfcTextureCoordinate">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <SubTemplates>
                <ConceptTemplate uuid="36f5b37a-5390-4743-a8a5-2b29fa5d50bd" name="Indexed Texture Map" status="sample" applicableSchema="IFC4" applicableEntity="IfcIndexedTriangleTextureMap">
                  <Rules>
                    <AttributeRule AttributeName="Maps">
                      <EntityRules>
                        <EntityRule EntityName="IfcImageTexture">
                          <References>
                            <Template ref="19574eae-52be-43e7-9124-79a9451486cb" />
                          </References>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="TexCoords">
                      <EntityRules>
                        <EntityRule EntityName="IfcTextureVertexList">
                          <AttributeRules>
                            <AttributeRule AttributeName="TexCoordsList" />
                          </AttributeRules>
                        </EntityRule>
                      </EntityRules>
                    </AttributeRule>
                    <AttributeRule AttributeName="TexCoordIndex" />
                  </Rules>
                </ConceptTemplate>
              </SubTemplates>
            </ConceptTemplate>
          </SubTemplates>
        </ConceptTemplate>
      </SubTemplates>
    </ConceptTemplate>
  </Templates>
  <Views>
    <ModelView uuid="d96b17e1-d193-4aea-b77e-8a565ced492c" name="Design Transfer View" code="DesignTransferView_V1-1" version="1.1" status="proposal" owner="bSI" copyright="&amp;copy; 1996-2016 buildingSMART International Ltd." applicableSchema="IFC4">
      <Definitions>
        <Definition>
          <Body><![CDATA[  <h3 class="num" id="purpose">Purpose of the Design Transfer View</h3>

<p>The purpose of the Design Transfer View is to provide building information with support for editing of interconnected elements. Such applications enable inserting, deleting, moving, and modifying physical building elements and spaces. The target scenario is an architect providing building design information to an engineer for a particular discipline, where geometric modifications may need to be made.</p>



<p>To enable such editing, higher-level design parameters must be preserved for those elements that affect multiple disciplines, and applications must generate downstream geometry consistently according to such parameters. The scope of parameters is limited to those that impact interconnected elements: for example, increasing window dimensions impacts composition of walls; moving walls impacts geometry of connected walls, adjoining spaces, coverings, and embedded elements; adjusting pipes or ducts may require resizing openings.</p>

  <p>Examples of this design transfer workflow are:</p>
  <ul>
   <li>Coordination planning and execution (combining different discipline specific IFC models for collaboration)</li>
   <li>Clash detection and resolution (finding clashes and resolutions between different discipline specific IFC models)</li>
   <li>Integrated reference (loading an IFC model, usually from a different discipline) as an integrated model</li>
   <li>Quantity take-off (determine the quantities of the various model elements with the IFC model)</li>
   <li>Construction sequencing (taking the IFC model and associating it to a construction schedule)</li>
   <li>Visual presentation (for presenting the IFC model to a broad audience)</li>
  </ul>
  <p>Common characteristics of the workflow using design transfer models are:</p>
  <ul>
   <li>The source of the BIM information remains with the originator or may be shared</li>
   <li>The full parametric behaviour, and thereby the intellectual engineering property, remains with the originator or may be tranfered</li>
   <li>The ownership of the model, and responsibility for its correctness, remains with the originator or may be transfered</li>
   <li>The original model is published as IFC4 Design Transfer model reflecting the as-is status</li>
   <li>The receiver of the IFC4 Design Transfer View does not need to have access to the full model content</li>
   <li>The receiver of the IFC4 Design Transfer View may modify the model</li>
   <li>The receiver of the IFC4 Design Transfer View can analyse and extract the information of the model</li>
   <li>If the receiver suggests or demands a change, it may be made to the model directly</li>
  </ul>
  <p>The Level of Detail of the shape representation and the Level of Information for the property content of the actual reference models depends on the source
   model. The buildingSMART standard IDM (Information Delivery Manual) can be used to determine the minimum content for a particular workflow support. The IFC4
   Design Transfer View allows rich content to be published.</p>




<h3 class="num" id="objective">Objective</h3>

<p>The main objective of the IFC4 Design Transfer View is to enable collaboration on design elements impacting multiple disciplines.</p>

<h3 class="num" id="workflow-support">Workflow support</h3>

<p>The overall goal of the IFC4 Design Transfer View is to provide workflows where building information models may be edited by design software platforms. 
It is not intended to capture all design parameters, but rather a limited subset affecting major building elements, along with the design results for all components within a building.</p>

  <h3 class="num" id="compatibility-concerns">Compatibility concerns</h3>

<p>The IFC4 Design Transfer View is intended to be compatible with the IFC2x3 Coordination View where possible. 
Exceptions to compatibility are made to support new features and remove obsolete data structures. 
</p>

  <h3 class="num" id="general-scope-definition">
   General scope definition
  </h3>

<p>All geometry is supported in the Design Transfer View, including Constructive Solid Geometry (CSG) and new Non-Uniform Rational B-Spline (NURBS) geometry defined in IFC4 for precisely describing arbitrary curved surfaces.</p>


<p>The Design Transfer View derives from the Reference View, such that it is a superset of the Reference View. It is valid to include geometry defined within the Design Transfer View (e.g. CSG) along with geometry defined within the Reference View (e.g. tessellation). Reference View geometry may also be omitted, as it is defined as optional.</p>

<p>The IFC data model provides constructs for implicit and explicit parametric modeling. Explicit parametric behavior may be represented with the IFC constraint model (<i>IfcRelAssociatesConstraint</i>) to indicate product configuration tables and geometric formulas, which is out of scope for this model view. Implicit parametric behavior is based on defined rules for common elements defined by an axis path or footprint area, and may be modelled by <i>standard-case</i> and <i>elemented-case</i> entities.</p>

<p><i>Standard-case</i> entities are defined by material configuration at type definitions (either <i>IfcMaterialLayerSet</i>, <i>IfcMaterialProfileSet</i>, or <i>IfcMaterialConstituentSet</i>, which are applied to an axis path or footprint area. Material profiles define cross sections of materials that are swept along a curve. Material layers define thicknesses of materials that fill a bounded area. <i>Standard-case</i> entities include the following:</p>

<table class="gridtable">
<tr><th>Entity</th><th>Material</th><th>Representation</th></tr>
<tr><td><i>IfcSlabStandardCase</i></td><td><i>IfcMaterialLayerSetUsage</i></td><td>'Footprint'</td></tr>
<tr><td><i>IfcPlateStandardCase</i></td><td><i>IfcMaterialLayerSetUsage</i></td><td>'Footprint'</td></tr>
<tr><td><i>IfcWallStandardCase</i></td><td><i>IfcMaterialLayerSetUsage</i></td><td>'Axis'</td></tr>
<tr><td><i>IfcColumnStandardCase</i></td><td><i>IfcMaterialProfileSetUsage</i></td><td>'Axis'</td></tr>
<tr><td><i>IfcBeamStandardCase</i></td><td><i>IfcMaterialProfileSetUsage</i></td><td>'Axis'</td></tr>
<tr><td><i>IfcMemberStandardCase</i></td><td><i>IfcMaterialProfileSetUsage</i></td><td>'Axis'</td></tr>
<tr><td><i>IfcDoorStandardCase</i></td><td><i>IfcMaterialConstituentSet</i></td><td>'Profile'</td></tr>
<tr><td><i>IfcWindowStandardCase</i></td><td><i>IfcMaterialConstituentSet</i></td><td>'Profile'</td></tr>
<tr><td><i>IfcOpeningStandardCase</i></td><td><i>IfcMaterialConstituentSet</i></td><td>'Profile'</td></tr>
</table>

<p><i>Elemented-case</i> entities are defined by compositions of elements, where each composed element is defined by material configuration at type definitions. <i>Elemented-case</i> entities include the following:</p>

<table class="gridtable">
<tr><th>Entity</th><th>Components</th></td>

<tr><td><i>IfcSlabElementedCase</i></td><td>
<i>IfcPlateStandardCase</i> (subfloor)<br/>
<i>IfcElementAssembly</i> (joists)<br/>
<i>IfcBuildingElementPart</i> (ceiling drywall)
</td></tr>

<tr><td><i>IfcWallElementedCase</i></td><td>
<i>IfcBuildingElementPart</i> (panels on forward side)<br/>
<i>IfcElementAssembly</i> (studs, track, insulation)<br/>
<i>IfcBuildingElementPart</i> (panels on reverse side)</td></tr>
</table>
]]></Body>
        </Definition>
      </Definitions>
      <BaseView>86aa67de-829b-467b-9cd8-dd364beabe79</BaseView>
      <ExchangeRequirements>
        <ExchangeRequirement uuid="c498680d-cc8b-4032-a9f3-cc6b2f096f42" name="Design Transfer Exchange" status="sample" applicability="both">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>As the Design Transfer View is derived from the Reference View, all concepts listed in the Reference Exchange also apply to the Design Transfer Exchange, however for brevity that are not repeated within the table that follows.</p>]]></Body>
            </Definition>
          </Definitions>
        </ExchangeRequirement>
      </ExchangeRequirements>
      <Roots>
        <ConceptRoot uuid="e987403c-58fe-4b3c-b5f4-af0feefb2fe7" name="IfcBeamStandardCase" status="sample" applicableRootEntity="IfcBeamStandardCase">
          <Definitions>
            <Definition>
              <Body><![CDATA[]]></Body>
            </Definition>
          </Definitions>
          <Concepts>
            <Concept uuid="8085909e-d691-4b23-a98a-d41de4dcfdb7" name="Material Profile Set Usage" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<p>The <em>IfcBeamStandardCase</em> defines in addition that the
 <em>IfcBeamType</em> should have a unique
 <em>IfcMaterialProfileSet</em>, that is referenced by the 
<em>IfcMaterialProfileSetUsage</em> that is assigned to all
occurrences of this <em>IfcBeamType</em>.</p>

<table>

 <tr>
  <td><img src="../../../figures/ifcbeamstandardcase-01.png" height="500" width="500"  alt="Material profile set and usage"></td>
  <td><blockquote class="example">EXAMPLE&nbsp; Figure 197 illustrates assignment of <em>IfcMaterialProfileSetUsage</em> and <em>IfcMaterialProfileSet</em> to the <em>IfcBeamStandardCase</em> as the beam occurrence and to the <em>IfcBeamType</em>. The same <em>IfcMaterialProfileSet</em> shall be shared by many occurrences of <em>IfcMaterialProfileSetUsage</em>. This relationship shall be consistent to the relationship between the <em>IfcBeamType</em> and the <em>IfcBeamStandardCase</em>.</blockquote>

 </td>
 </tr>
 
<tr>
  <td><p class="figure">Figure 197 &mdash; Beam profile usage</p></td>
  <td>&nbsp;</td>
 </tr>

</table>



<table>

 <tr>
  <td><img src="../../../figures/ifcbeamstandardcase_cardinalpoint.png" width="675" alt="Cardinal point usage"></td>
  <td>

    <blockquote class="example">EXAMPLE&nbsp; Figure 198 illustrates alignment of cardinal points.</blockquote>
    
<blockquote class="note">NOTE&nbsp; It has to be guaranteed that the use of <em>IfcCardinalPointEnum</em> is consistent to the placement of the extrusion body provided by <em>IfcExtrudedAreaSolid.Position</em></blockquote>
    
<blockquote class="note">NOTE&nbsp; The cardinal points <b>8</b> (top centre) and <b>6</b> (mid-depth right) are assigned according to the definition at <em>IfcCardinalPointReference</em></blockquote> </td>
 </tr>
 
<tr>
  <td><p class="figure">Figure 198 &mdash; Beam cardinal points</p></td>
  <td>&nbsp;</td>
 </tr>

</table>
<table>
 
<tr>
  <td><img src="../../../figures/ifcbeamstandardcase-02.png" height="550" width="500" alt="Material profile set and usage"></td>
  <td>
<blockquote class="example">EXAMPLE&nbsp; Figure 199 illustrates assignment of a composite profile by using <em>IfcCompositeProfile</em> for geometric representation and several <em>IfcMaterialProfile</em>'s within the <em>IfcMaterialProfileSet</em>.</blockquote>

 </td>
 </tr>

 <tr>
  <td><p class="figure">Figure 199 &mdash; Beam composite profiles</p></td>
 </tr>

</table>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6aa01429-b566-4b36-875a-3162088a9831" />
              <Requirements>
                <Requirement applicability="export" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="bcfd5d22-13b1-495c-b8ac-cc125b484c20" name="Axis 3D Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following additional constraints apply to the 'Axis'
representation, if the 'Body' shape representation has the
<em>RepresentationType</em> : 'SweptSolid':</p>

<ul>

<li><em>Axis</em>
<ul>

<li><em>IfcPolyline</em> having two <em>Points</em>, or
<em>IfcTrimmedCurve</em> with <em>BasisCurve</em> of Type
<em>IfcLine</em> for 'SweptSolid' provided as
<em>IfcExtrudedAreaSolid</em>. The axis curve lies on the z axis of
the object coordinate system.</li>

<li><em>IfcTrimmedCurve</em> with <em>BasisCurve</em> of Type
<em>IfcCircle</em> for 'SweptSolid' provided as
<em>IfcRevolvedAreaSolid</em>. The axis curve lies on the x/z plane
of the object coordinate system, the tangent at the start is along
the positive z-axis.</li>

</ul>

</li>

</ul>


<p>&nbsp;</p>


<table border="0" cellpadding="2" cellspacing="2" summary="Axis">

<tr><td align="left" valign="top" width="350">
<img src="../../../figures/ifcbeamstandardcase_axis-01.png" alt="Axis" height="280" width="400" border="1"></td>
<td><blockquote class="example">EXAMPLE&nbsp; As shown in Figure 76, the axis shall be defined along the z axis of the object coordinate system. The axis representation can be used to represent the system length of a beam that may extent the body length of the beam.</blockquote>

</td>
</tr>

<tr><td><p class="figure">Figure 199 &mdash; Beam axis representation</p></td><td>&nbsp;</td></tr>

</table>


<table>

<tr><td align="left" valign="top" width="350">
<img src="../../../figures/ifcbeamstandardcase_axis-02.png" alt="Axis" height="290"
width="400" border="1"></td>
<td><blockquote class="example">EXAMPLE&nbsp; As shown in Figure 77, the axis representation shall be used to represent the cardinal point as the offset between the 'Axis' and the extrusion path of the beam. The extrusion path is provided as <em>IfcExtrudedAreaSolid.ExtrudedDirection</em> and should be parallel to the 'Axis' and the z axis. It has to be guaranteed that the value provided by
<em>IfcMaterialProfileSetUsage.CardinalPoint</em> is consistent to the <em>IfcParameterizedProfileDef.Position</em>.</blockquote>

</td>
</tr>

<tr><td><p class="figure">Figure 200 &mdash; Beam axis cardinal point</p></td><td>&nbsp;</td></tr>

</table>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="b894d8cb-fb41-45ec-ba18-72cac6baff34" />
              <Requirements>
                <Requirement applicability="export" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="e1c5f3f4-35b0-4a5d-a074-1c4a206f4fae" name="Body SweptSolid StandardizedProfile Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<p>The following additional constraints apply to the 'SweptSolid'
representation:</p>

<ul>
 
<li><u>Solid</u>: <em>IfcExtrudedAreaSolid</em>,
<em>IfcRevolvedAreaSolid</em> shall be supported</li>
 
<li><u>Solid Position</u> : The <em>IfcSweptAreaSolid.Position</em>
shall exclusively been used to correspond to the cardinal point.
The x/y offset of the <em>Position</em> represents the cardinal
point offset of the profile against the axis. No rotation shall be
allowed.</li>
 
<li><u>Profile</u>: All subtypes of
<em>IfcParameterizedProfileDef</em></li>
 
<li><u>Profile Position</u> : For all single profiles, the
<em>IfcParameterizedProfileDef.Position</em> shall be NIL, or having
<em>Location</em> = 0.,0. and <em>RefDirection</em> = 1.,0.</li>

 <li><u>Extrusion</u>: Perpendicular to the profile direction. 
The <em>IfcExtrudedAreaSolid.ExtrudedDirection</em> shall be 
[0.,0.,1.].</li>
 
<li><u>Orientation</u>: The y-axis of the profile, as determined by
 <em>IfcSweptAreaSolid.Position.P[2]</em> shall point upwards. It 
indicates the "role" of the beam, a role=0&deg; means y-axis of 
profile pointing upwards.</li>

</ul>


<p>Figure 200 illustrates a standard geometric representation with cardinal point applied as <b>1</b> (bottom left).</p>

<p>The following interpretation of dimension parameter applies for rectangular beams with linear extrusions:</p>

<ul>
 
<li><em>IfcRectangleProfileDef.YDim</em> interpreted as beam height</li>
 
<li><em>IfcRectangleProfileDef.XDim</em> interpreted as beam width</li>

</ul>

<p>The following interpretation of dimension parameter applies for circular beams:</p>

<ul>
 
<li><em>IfcCircleProfileDef.Radius</em> interpreted as beam radius.</li>

</ul>


<table cellpadding="2" cellspacing="2">
<tr valign="top"><td align="left" valign="top"><img src="../../../figures/ifcbeamstandardcase_sweptsolid-01.png" alt="standard beam" border="1" height="300" width="400"></td></tr>
<tr><td><p class="figure">Figure 200 &mdash; Beam body extrusion</p></td></tr>
</table>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="1d8079be-98fb-4c3e-a202-49fb218bfeb1" />
            </Concept>
            <Concept uuid="a7818fc6-f5d1-43eb-a469-cdcbb4eb223f" name="Body SweptSolid Composite Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6e79c7cc-e238-405d-8f0e-87b4fabf366b" />
            </Concept>
            <Concept uuid="52eeabe6-f650-4bb6-af40-8e8515baaf9c" name="Body AdvancedSwept Directrix Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<p>The following additional constraints apply to the
'AdvancedSweptSolid' representation type:</p>

<ul>
 
<li><u>Solid</u>: <em>IfcSurfaceCurveSweptAreaSolid</em>,
<em>IfcFixedReferenceSweptAreaSolid</em> shall be supported.</li>

 
<li><u>Solid Position</u> : The <em>IfcSweptAreaSolid.Position</em>
shall exclusively been used to correspond to the cardinal point.
The x/y offset of the <em>Position</em> represents the cardinal
point offset of the profile against the axis. No rotation shall be
allowed.</li>
 
<li><u>Profile</u>: all subtypes of <em>IfcProfileDef</em> (with 
exception of <em>IfcArbitraryOpenProfileDef</em>)</li>
 
<li><u>Profile Position</u> : For all single profiles, the
 <em>IfcParameterizedProfileDef.Position</em> shall be NIL, or having 
<em>Location</em> = 0.,0. and <em>RefDirection</em> = 1.,0.</li>

</ul>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="75af261d-d8ff-46be-8037-001930349f07" />
            </Concept>
            <Concept uuid="1f924cde-b215-478c-b416-8bf620132cc1" name="Body AdvancedSwept Tapered Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<p>The following additional constraints apply to the
'AdvancedSweptSolid' representation type:</p>

<ul>
 
<li><u>Solid</u>: 
<em>IfcExtrudedAreaSolidTapered</em>, 
<em>IfcRevolvedAreaSolidTapered</em> shall be supported.</li>

 
<li><u>Solid Position</u> : The <em>IfcSweptAreaSolid.Position</em>
shall exclusively been used to correspond to the cardinal point.
The x/y offset of the <em>Position</em> represents the cardinal
point offset of the profile against the axis. No rotation shall be
allowed.</li>
 
<li><u>Profile</u>: all subtypes of <em>IfcProfileDef</em> (with 
exception of <em>IfcArbitraryOpenProfileDef</em>)</li>
 
<li><u>Profile Position</u> : For all single profiles, the
 <em>IfcParameterizedProfileDef.Position</em> shall be NIL, or having 
<em>Location</em> = 0.,0. and <em>RefDirection</em> = 1.,0.</li>

</ul>

<blockquote class="note">NOTE&nbsp; Using <em>IfcExtrudedAreaSolidTapered</em>,
or <em>IfcRevolvedAreaSolidTapered</em> requires the use of two 
<em>IfcMaterialProfile</em>'s within the
<em>IfcMaterialProfileSetUsageTapering</em> assinged to the
<em>IfcBeamStandardCase</em></blockquote>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="714522b4-488e-495d-ba81-f10a5e41b1dc" />
            </Concept>
            <Concept uuid="d637ed64-415e-43a1-b33c-bb4907381bd2" name="Body Clipping Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following constraints apply to the 'Clipping'
representation:</p>
<ul>
<li><u>Solid</u> : see 'SweptSolid' geometric representation</li>
<li><u>Solid Position</u> : see 'SweptSolid' geometric
representation</li>
<li><u>Profile</u> : see 'SweptSolid' geometric representation</li>
<li><u>Profile Position</u> : see 'SweptSolid' geometric
representation</li>
<li><u>Extrusion</u> : see 'SweptSolid' geometric
representation</li>
<li><u>Orientation</u> : see 'SweptSolid' geometric
representation</li>
<li><u>Boolean result</u>: The <em>IfcBooleanClippingResult</em>
shall be supported, allowing for Boolean differences between the
swept solid (here <em>IfcExtrudedAreaSolid</em>) and one or several
<em>IfcHalfSpaceSolid</em> (or its subtypes).</li>
</ul>

<p>Figure 201 illustrates a 'Clipping' geometric representation with use of <em>IfcBooleanClippingResult</em> between an <em>IfcExtrudedAreaSolid</em> and an <em>IfcHalfSpaceSolid</em> to create a clipped body, with cardinal point applied as <b>4</b> (mid-depth left)</p>

<table cellpadding="2" cellspacing="2">
<tr valign="top"><td align="left" valign="top"><img src="../../../figures/ifcbeamstandardcase_clipping-01.png" alt="clipped beam"
border="1" height="300" width="400"></td></tr>
<tr><td><p class="figure">Figure 201 &mdash; Beam body clipping</p></td></tr>
</table>


]]></Body>
                </Definition>
              </Definitions>
              <Template ref="2cdbc2f5-9b0c-43ea-9d2a-9d72d0147e00" />
            </Concept>
            <Concept uuid="f866d1ff-ac9b-4037-9826-eebbb9e62ae5" name="Material Single" status="sample" override="false">
              <Template ref="5f39a814-44a0-4fb3-8dc6-ddaa0560fc54" />
            </Concept>
            <Concept uuid="a799e465-9887-4420-920c-d7417bcfd6fc" name="Mapped Geometry" status="sample" override="false">
              <Template ref="ecfdd7c8-71d5-449f-bf20-e63a25dcb9ba" />
            </Concept>
            <Concept uuid="3acdfbfd-4afd-46f6-9e67-b18d6e8d835d" name="Body SweptSolid PolyCurve Geometry" status="sample" override="false">
              <Template ref="38710ccd-8ff5-41ba-8fda-08300907a02e" />
            </Concept>
            <Concept uuid="aaedb76f-525a-4848-a7d8-92071f1ffe45" name="Body Tessellation Geometry" status="sample" override="false">
              <Template ref="5cfd4403-6545-4c6d-bc27-0a95a3d09950" />
            </Concept>
            <Concept uuid="6ca75b2b-264e-4f1e-9edd-739184ff9e6a" name="Body CSG Geometry" status="sample" override="false">
              <Template ref="a0ab7630-6965-495e-be8f-d106fd2599c2" />
            </Concept>
            <Concept uuid="b2acae73-8464-4ca7-b4e4-3bbd291f8744" name="Body SurfaceModel Geometry" status="sample" override="false">
              <Template ref="17d34a12-9403-40f4-bf82-65399be23c55" />
            </Concept>
            <Concept uuid="29090c0b-b481-48c2-90d3-fee88e2f12e0" name="Material Profile Set" status="sample" override="false">
              <Template ref="427ac055-2a71-42c2-a423-71689fa75c59" />
            </Concept>
            <Concept uuid="adc3654c-2dc8-4c64-8f0a-0652144ef3ac" name="Body AdvancedBrep Geometry" status="sample" override="false">
              <Template ref="fc763575-50f1-4bc0-bbf2-382380152047" />
            </Concept>
            <Concept uuid="7a5ea4d5-c528-4c52-8e60-07c9ad7e4b15" name="Body Brep Geometry" status="sample" override="false">
              <Template ref="8fb923f5-b82d-48d2-ad29-d678ca473fda" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="41eaecf1-7d8d-40a5-8aa9-619941571384" name="IfcBeamType" status="sample" applicableRootEntity="IfcBeamType">
          <Concepts>
            <Concept uuid="1c07d75c-8e12-43e0-a16a-bbca6550976b" name="Material Profile Set" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The material of the <em>IfcBeamType</em> is defined by the <em>IfcMaterialProfileSet</em> or as fall back by <em>IfcMaterial</em> and attached by the <em>IfcRelAssociatesMaterial</em><em>.RelatingMaterial</em>. It is accessible by the inverse <em>HasAssociations</em> relationship.</p>

<blockquote class="note">
NOTE&nbsp; It is illegal to assign an <em>IfcMaterial</em> to an <em>IfcBeamType</em>, if there is at least one occurrence of <em>IfcBeamStandardCase</em> for this type.
</blockquote>

<p>The shared profile definition is defined by assigning an <em>IfcMaterialProfileSet</em> (see material use definition above). The <em>IfcMaterialProfile</em> refers to the subtype of <em>IfcProfileDef</em> that is the common profile for all beam occurrence, if used. It is only applicable if the <em>IfcBeamType</em> has only occurrences of type <em>IfcBeamStandardCase</em> (see definition of <em>IfcBeamStandardCase</em> for further information).</p>

<blockquote class="note">
NOTE&nbsp; The attribute <em>ProfileName</em> of the <em>IfcProfileDef</em> subtype, referenced in <em>IfcMaterialProfile</em> should contain a standardized profile name according to local standards. However, an additional geometric representation of the profile is necessary (such as <em>IfcExtrudedAreaSolid</em>). An importing application is allowed to check for the existence of the profile name: in case of identifying it as a standardized name, the corresponding profile geometry and possibly other cross sectional properties can be read from a library. Otherwise the geometric representation and possible non geometric <em>IfcProfileProperties</em> have to be used.
</blockquote>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="427ac055-2a71-42c2-a423-71689fa75c59" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="e982bc39-4444-482f-9aec-b630d923c633" name="IfcCableCarrierSegment" status="sample" applicableRootEntity="IfcCableCarrierSegment">
          <Concepts>
            <Concept uuid="172f08ce-3aeb-4d99-bf29-d7394fc162ec" name="Port" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <Template ref="bafc93b7-d0e2-42d8-84cf-5da20ee1480a" />
              <TemplateRules operator="and">
                <TemplateRule Description="Head connection." Parameters="PortName[Value]='Head' AND Flow[Value]='SINK' AND SystemType[Value]='NOTDEFINED'" />
                <TemplateRule Description="Tail connection." Parameters="PortName[Value]='Tail' AND SystemType[Value]='NOTDEFINED' AND Flow[Value]='SOURCE'" />
              </TemplateRules>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="3a738205-9887-4e36-9386-70e971563dfc" name="IfcCableSegment" status="sample" applicableRootEntity="IfcCableSegment">
          <Concepts>
            <Concept uuid="697110d7-7979-4123-8d10-648bfbdcff67" name="Port" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <Template ref="bafc93b7-d0e2-42d8-84cf-5da20ee1480a" />
              <TemplateRules operator="and">
                <TemplateRule Description="The input end of the cable. While many cables may be bidirectional, port direction is indicated for connectivity purposes." Parameters="PortName[Value]='Input' AND SystemType[Value]='NOTDEFINED' AND Flow[Value]='SINK'" />
                <TemplateRule Description="The output end of the cable. While many cables may be bidirectional, port direction is indicated for connectivity purposes." Parameters="PortName[Value]='Output' AND SystemType[Value]='NOTDEFINED' AND Flow[Value]='SOURCE'" />
              </TemplateRules>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="05876759-bb02-4b39-95e7-19aca917fef9" name="IfcColumnStandardCase" status="sample" applicableRootEntity="IfcColumnStandardCase">
          <Definitions>
            <Definition>
              <Body><![CDATA[]]></Body>
            </Definition>
          </Definitions>
          <Concepts>
            <Concept uuid="dedce70c-2541-4425-a021-f8e6203e28e3" name="Material Profile Set Usage" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[

<p>The <em>IfcColumnStandardCase</em> defines in addition that the
<em>IfcColumnType</em> should have a unique
 <em>IfcMaterialProfileSet</em>, that is referenced by the 
<em>IfcMaterialProfileSetUsage</em> assigned to all occurrences of 
this <em>IfcColumnType</em>. 
Composite profile columns can be represented by refering to
several <em>IfcMaterialProfile</em>'s within the
<em>IfcMaterialProfileSet</em> that is referenced from the
<em>IfcMaterialProfileSetUsage</em>.</p>

<p>Figure 204 illustrates assignment of <em>IfcMaterialProfileSetUsage</em> and <em>IfcMaterialProfileSet</em> to the <em>IfcColumnStandardCase</em> as the column occurrence and to the <em>IfcColumnType</em>. The same <em>IfcMaterialProfileSet</em> shall be shared by many occurrences of <em>IfcMaterialProfileSetUsage</em>. This relationship shall be consistent to the relationship between the <em>IfcColumnType</em> and the <em>IfcColumnStandardCase</em>.</p>


<table>
 
<tr>
  <td><img src="../../../figures/ifccolumnstandardcase-01.png" alt="Material profile set and usage" height="500" width="500"></td>
 </tr>
 
<tr>
  <td><p class="figure">Figure 204 &mdash; Column profile usage</p></td>
 </tr>

</table>



<p>Figure 205 illustrates cardinal point alignment.</p>
<blockquote class="note">NOTE  It has to be guaranteed that the use of <em>IfcCardinalPointEnum</em> is consistent to the placement of the
extrusion body provided by <em>IfcExtrudedAreaSolid.Position</em></blockquote>
<blockquote class="note">NOTE  The cardinal points <b>7</b> (top left), and <b>6</b> (mid-depth right) are assigned according to the
definition at <em>IfcCardinalPointReference</em></blockquote>


<table border="0" cellpadding="2" cellspacing="2">
<tr><td align="left" valign="top"><img src="../../../figures/ifccolumnstandardcase_cardinalpoint.png" alt="Cardinal point usage" height="250" width="500"></td></tr>
<tr><td><p class="figure">Figure 205 &mdash; Column cardinal points</p></td></tr>
</table>



<p>Figure 206 illustrates assignment of a composite profile by using <em>IfcCompositeProfile</em> for geometric representation and several <em>IfcMaterialProfile</em>'s within the <em>IfcMaterialProfileSet</em>. The number of <em>IfcMaterialProfile</em>'s within the <em>IfcMaterialProfileSet</em> is restricted to maximal 2 and requires the use of <em>IfcExtrudedAreaSolidTapered</em>, or <em>IfcRevolvedAreaSolidTapered</em> for the correct 'Body' shape representation.</p>


<table border="0" cellpadding="2" cellspacing="2">
<tr><td><img src="../../../figures/ifccolumnstandardcase-02.png" alt="Material profile set and usage" height="550" width="500"></td></tr>
<tr><td><p class="figure">Figure 206 &mdash; Column composite profiles</p></td></tr>
</table>


]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6aa01429-b566-4b36-875a-3162088a9831" />
              <Requirements>
                <Requirement applicability="export" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="d2fac1d9-2b46-454f-a70d-ce75a49bd3a4" name="Axis 3D Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following additional constraints apply to the 'Axis'
representation, if the 'Body' shape representation has the
<em>RepresentationType</em> : 'SweptSolid':</p>

<ul>

 <li><em>Axis</em>
  <ul>
   <li><em>IfcPolyline</em> having two <em>Points</em>, or
<em>IfcTrimmedCurve</em> with <em>BasisCurve</em> of Type
<em>IfcLine</em> for 'SweptSolid' provided as
<em>IfcExtrudedAreaSolid</em>. The axis curve lies on the z axis of
the object coordinate system.</li>

   <li><em>IfcTrimmedCurve</em> with <em>BasisCurve</em> of Type
<em>IfcCircle</em> for 'SweptSolid' provided as
<em>IfcRevolvedAreaSolid</em>. The axis curve lies on the x/z plane
of the object coordinate system, the tangent at the start is along
the positive z-axis.</li>

  </ul>
 </li>
</ul>


<p>&nbsp;</p>

<table border="0" cellpadding="2" cellspacing="2" summary="Axis">

 <tr>
  <td align="left" valign="top" width="300"><img src="../../../figures/ifccolumnstandardcase_axis-01.png" alt="Axis" border="1"></td>
  <td>
<blockquote class="example">EXAMPLE&nbsp; As shown in Figure 206, the axis shall be defined along the z axis of
the object coordinate system. The axis representation can be used to
represent the system length of a column that may extent the body
length of the column.</blockquote>

</td>
 </tr>
 
<tr>
  <td><p class="figure">Figure 206 &mdash; Column axis representation</p></td>
  <td>&nbsp;</td>
 </tr>

</table>

<table border="0" cellpadding="2" cellspacing="2" summary="Axis">
 
<tr>
  <td align="left" valign="top" width="300"><img src="../../../figures/ifccolumnstandardcase_axis-02.png" alt="Axis" border="1"></td>

  <td><blockquote class="example">EXAMPLE&nbsp; As shown in Figure 207, the axis representation shall be used to represent the cardinal point as the offset between the 'Axis' and the extrusion path of the column. The extrusion path is provided as <em>IfcExtrudedAreaSolid.ExtrudedDirection</em> and should be parallel to the 'Axis'. It has to be guaranteed that the value provided by <em>IfcMaterialProfileSetUsage.CardinalPoint</em> is consistent to the <em>IfcExtrudedAreaSolid.Position</em>.</blockquote>
 </tr>

 <tr>
  <td><p class="figure">Figure 207 &mdash; Column axis cardinal point</p></td>
  <td>&nbsp;</td>
 </tr>

</table>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="b894d8cb-fb41-45ec-ba18-72cac6baff34" />
              <Requirements>
                <Requirement applicability="export" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="8b7949f3-d464-407d-8e42-3a8031cdedac" name="Body SweptSolid StandardizedProfile Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following additional constraints apply to the 'SweptSolid'
representation:</p>

<ul>
 
<li><u>Solid</u>: <em>IfcExtrudedAreaSolid</em>,
<em>IfcRevolvedAreaSolid</em> shall be supported</li>
 
<li><u>Profile</u>: All subtypes of
<em>IfcParameterizedProfileDef</em></li>
 
<li><u>Profile Position</u> : For all single profiles, the
<em>IfcParameterizedProfileDef.Position</em> shall be NIL, or
having <em>Location</em> = 0.,0. and <em>RefDirection</em> =
1.,0.</li>
 <li><u>Extrusion</u>: perpendicular to the profile direction. The 
<em>IfcExtrudedAreaSolid.ExtrudedDirection</em> shall be
 [0.,0.,1.].</li>

 <li><u>Orientation</u>: The y-axis of the profile, as determined 
by <em>IfcSweptAreaSolid.Position.P[2]</em> shall point to the 
Y-Axis. It indicates the "role" of the column, a role=0&deg;
means y-axis of profile = Y-axis of reference coordinate
system.</li>

</ul>


<p>Figure 207 illustrates a standard geometric representation with cardinal point applied as <b>5</b> (mid-depth centre).</p>

<p>The following interpretation of dimension parameter applies for rectangular columns:</p>

<ul>

 <li><em>IfcRectangleProfileDef.YDim</em> interpreted as column width</li>

 <li><em>IfcRectangleProfileDef.XDim</em> interpreted as column depth</li>

</ul>

<p>The following interpretation of dimension parameter applies for circular columns:</p>

<ul>
<li><em>IfcCircleProfileDef.Radius</em> interpreted as column radius.</li>
</ul>


<table cellpadding="2" cellspacing="2">
<tr valign="top">
<td align="left" valign="top"><img src="../../../figures/ifccolumnstandardcase_sweptsolid-01.png" alt="standard column" border="1" height="300" width="400"></td></tr>
<tr><td><p class="figure">Figure 207 &mdash; Column body extrusion</p></td></tr>
</table>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="1d8079be-98fb-4c3e-a202-49fb218bfeb1" />
            </Concept>
            <Concept uuid="31e9779f-f646-4c80-88d5-0c3c37788933" name="Body SweptSolid Composite Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6e79c7cc-e238-405d-8f0e-87b4fabf366b" />
            </Concept>
            <Concept uuid="ecb9102f-7309-459d-be8b-8944f7f9dc33" name="Body AdvancedSwept Directrix Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following additional constraints apply to the
'AdvancedSweptSolid' representation type:</p>

<ul>

 <li><u>Solid</u>: <em>IfcSurfaceCurveSweptAreaSolid</em>,
 <em>IfcFixedReferenceSweptAreaSolid</em>,  shall be supported.
</li>

 
<li><u>Profile</u>: all subtypes of <em>IfcProfileDef</em> (with 
exception of <em>IfcArbitraryOpenProfileDef</em>)</li>
 
<li><u>Profile Position</u> : For all single profiles, the 
<em>IfcParameterizedProfileDef.Position</em> shall be NIL, or 
having <em>Location</em> = 0.,0. and <em>RefDirection</em> =
 1.,0.</li>
</ul>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="75af261d-d8ff-46be-8037-001930349f07" />
            </Concept>
            <Concept uuid="d6473840-b06f-476e-b550-8c13b76d6c2a" name="Body AdvancedSwept Tapered Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following additional constraints apply to the
'AdvancedSweptSolid' representation type:</p>

<ul>

 <li><u>Solid</u>: 
<em>IfcExtrudedAreaSolidTapered</em>, 
<em>IfcRevolvedAreaSolidTapered</em> shall be supported.
</li>

 
<li><u>Profile</u>: all subtypes of <em>IfcProfileDef</em> (with 
exception of <em>IfcArbitraryOpenProfileDef</em>)</li>
 
<li><u>Profile Position</u> : For all single profiles, the 
<em>IfcParameterizedProfileDef.Position</em> shall be NIL, or 
having <em>Location</em> = 0.,0. and <em>RefDirection</em> =
 1.,0.</li>
</ul>


<blockquote class="note">NOTE&nbsp; Using <em>IfcExtrudedAreaSolidTapered</em>,
or <em>IfcRevolvedAreaSolidTapered</em> requires the use of two 
<em>IfcMaterialProfile</em>'s within the
<em>IfcMaterialProfileSetUsageTapering</em> assinged to the
<em>IfcColumnStandardCase</em></blockquote>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="714522b4-488e-495d-ba81-f10a5e41b1dc" />
            </Concept>
            <Concept uuid="42430896-d460-4183-8f42-d492db5d7ce4" name="Body Clipping Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following constraints apply to the 'Clipping' 
representation:</p>
<ul>
<li><u>Solid</u>: see 'SweptSolid' geometric representation</li>
<li><u>Profile</u>: see 'SweptSolid' geometric
representation</li>
<li><u>Profile Position</u> : see 'SweptSolid' geometric
representation</li>
<li><u>Extrusion</u>: see 'SweptSolid' geometric
representation</li>
<li><u>Orientation</u>: see 'SweptSolid' geometric
representation</li>
<li><u>Boolean result</u>: The <em>IfcBooleanClippingResult</em>
shall be supported, allowing for Boolean differences between the
swept solid (here <em>IfcExtrudedAreaSolid</em>) and one or several
<em>IfcHalfSpaceSolid</em> (or its subtypes).</li>
</ul>

<p>Figure 208 illustrates a 'Clipping' geometric representation with use of <em>IfcBooleanClippingResult</em> between
an <em>IfcExtrudedAreaSolid</em> and an <em>IfcHalfSpaceSolid</em> to create a clipped body, with cardinal point applied as <b>2</b> (bottom centre).</p>

<table cellpadding="2" cellspacing="2">
<tr valign="top"><td align="left" valign="top"><img src="../../../figures/ifccolumnstandardcase_clipping-01.png" alt="clipped column" border="1" height="300" width="400"></td></tr>
<tr><td><p class="figure">Figure 208 &mdash; Column body clipping</p></td></tr>
</table>



]]></Body>
                </Definition>
              </Definitions>
              <Template ref="2cdbc2f5-9b0c-43ea-9d2a-9d72d0147e00" />
            </Concept>
            <Concept uuid="e611e104-e8a1-4af3-a263-58504cc2be7c" name="Material Single" status="sample" override="false">
              <Template ref="5f39a814-44a0-4fb3-8dc6-ddaa0560fc54" />
            </Concept>
            <Concept uuid="415aa731-db0e-45bf-91ec-e222e4db42b8" name="Mapped Geometry" status="sample" override="false">
              <Template ref="ecfdd7c8-71d5-449f-bf20-e63a25dcb9ba" />
            </Concept>
            <Concept uuid="26d69847-c582-4929-a771-af03ebcc847a" name="Body SweptSolid PolyCurve Geometry" status="sample" override="false">
              <Template ref="38710ccd-8ff5-41ba-8fda-08300907a02e" />
            </Concept>
            <Concept uuid="496bf84f-c576-4114-9d79-2a6e0b8429ca" name="Body Tessellation Geometry" status="sample" override="false">
              <Template ref="5cfd4403-6545-4c6d-bc27-0a95a3d09950" />
            </Concept>
            <Concept uuid="acb10ce9-8129-4300-88fa-964b6c1e2f66" name="Body CSG Geometry" status="sample" override="false">
              <Template ref="a0ab7630-6965-495e-be8f-d106fd2599c2" />
            </Concept>
            <Concept uuid="bbfac067-d718-4faa-8845-81d71e95685c" name="Body SurfaceModel Geometry" status="sample" override="false">
              <Template ref="17d34a12-9403-40f4-bf82-65399be23c55" />
            </Concept>
            <Concept uuid="b118047e-26f2-420d-8aed-b2fc24e56f20" name="Material Profile Set" status="sample" override="false">
              <Template ref="427ac055-2a71-42c2-a423-71689fa75c59" />
            </Concept>
            <Concept uuid="c4c25b92-557c-4875-bd3d-379ad9e9d71f" name="Body AdvancedBrep Geometry" status="sample" override="false">
              <Template ref="fc763575-50f1-4bc0-bbf2-382380152047" />
            </Concept>
            <Concept uuid="642ae387-033c-47e8-8c4d-137c177b825a" name="Body Brep Geometry" status="sample" override="false">
              <Template ref="8fb923f5-b82d-48d2-ad29-d678ca473fda" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="5005a4c3-f196-46b0-bc57-76b8c70b1f2f" name="IfcColumnType" status="sample" applicableRootEntity="IfcColumnType">
          <Concepts>
            <Concept uuid="856c963e-6327-4a9b-a014-fc8a87f78e60" name="Material Profile Set" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The material of the <em>IfcColumnType</em> is defined by the
<em>IfcMaterialProfileSet</em> or as fall back by
<em>IfcMaterial</em> and attached by the
<em>IfcRelAssociatesMaterial</em><em>.RelatingMaterial</em>. It is
accessible by the inverse <em>HasAssociations</em>
relationship.</p>

<blockquote class="note">
NOTE&nbsp; It is illegal to assign an <em>IfcMaterial</em> to an <em>IfcColumnType</em>, if there is at least one occurrences of <em>IfcColumnStandardCase</em> for this
type.
</blockquote>

<p>The shared profile definition is defined by assigning an
<em>IfcMaterialProfileSet</em> (see material use definition above).
The <em>IfcMaterialProfile</em> refers to the subtype of
<em>IfcProfileDef</em> that is the common profile for all column
occurrence, if used. It is only applicable if the
<em>IfcColumnType</em> has only occurrences of type
<em>IfcColumnStandardCase</em> (see definition of
<em>IfcColumnStandardCase</em> for further information).</p>

<blockquote class="note">
NOTE&nbsp; The attribute <em>ProfileName</em> of the
<em>IfcProfileDef</em> subtype, referenced in
<em>IfcMaterialProfile</em> should contain a standardized profile
name according to local standards. However, an additional
geometric representation of the profile is necessary (e.g. as
<em>IfcExtrudedAreaSolid</em>). An importing application is allowed
to check for the existence of the profile name: in case of
identifying it as a standardized name, the corresponding profile
geometry and possibly other cross sectional properties can be
read from a library. Otherwise the geometric representation and
possible non geometric <em>IfcProfileProperties</em> have to be
used.
</blockquote>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="427ac055-2a71-42c2-a423-71689fa75c59" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="fde49cbc-aa1c-4395-8d48-3cb445975273" name="IfcCovering" status="sample" applicableRootEntity="IfcCovering">
          <Concepts>
            <Concept uuid="add63ba3-d5bb-4f38-b74d-8be36620bd94" name="Axis 2D Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Vertical coverings such as for walls may be positioned according to an Axis representation. For the case of an enclosed space, such curve may be closed.</p>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="782444e8-d681-475a-9034-a9e7f53c6d65" />
              <TemplateRules operator="and">
                <TemplateRule Description="The wall axis of the wall." Parameters="Identifier[Value]='Axis' AND Type[Value]='Curve2D' AND Items[Type]='IfcBoundedCurve'" />
              </TemplateRules>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="d5ab5388-caf1-40b1-b8bd-952570c13795" name="IfcDistributionControlElement" status="sample" applicableRootEntity="IfcDistributionControlElement">
          <Concepts>
            <Concept uuid="3f4b3d17-ce7c-447f-9e5b-0acacd7972a9" name="Control Flow" status="sample" override="false">
              <Template ref="d1d8208b-51e5-4a8f-92ba-e3a2ea2bcb9c" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="c6779cc8-7ef4-4635-a68c-93683b7a477d" name="IfcDistributionElementType" status="sample" applicableRootEntity="IfcDistributionElementType">
          <Concepts>
            <Concept uuid="f883a270-f7f3-4cb0-9247-1ecf965345a9" name="Type Clearance Geometry" status="sample" override="false">
              <Template ref="f1ebb0f3-96c9-4912-a475-d012a23f8179" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="031f0758-728b-4c66-8a76-ffc8e2bd53fe" name="IfcDoorStandardCase" status="sample" applicableRootEntity="IfcDoorStandardCase">
          <Concepts>
            <Concept uuid="d0e968af-22c6-4d49-8d08-855b9709cd62" name="Profile 3D Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The door profile is represented by a three-dimensional closed
curve within a particular shape representation. The profile is used 
to apply the parameter of the parametric door representation. The
 following attribute values for the <em>IfcShapeRepresentation</em> 
holding this geometric representation shall be used:</p>

<ul>

 <li><em>RepresentationIdentifier</em> : 'Profile'</li>
 
<li><em>RepresentationType</em> : 'Curve3D' or 'GeometricCurveSet',
in case of 'GeometricCurveSet' only a single closed curve shall be 
contained in the set of <em>IfcShapeRepresentation.Items</em>.</li>

</ul>

<p>The following additional constraints apply to the 'Profile'
representation type:</p>

<ul>
 
<li><u>Curve</u>: being an <em>IfcPolyline</em> defining a
rectangle.</li>
 
<li><u>Position</u>: The curve shall lie in the xz plane of the
 object placement coordinate (the y coordinate values of the
<em>IfcCartesianPoint</em>'s shall be 0.).</li>

</ul>
<p>&nbsp;</p>

<table summary="">
 
<tr valign="top">

  <td><img src="../../../figures/ifcdoorstandardcase-01.png" alt=
"standard door" border="0" width="500" height="500"></td>

  <td>
<blockquote class="example">EXAMPLE&nbsp; Figure 209 illustrates applying the door lining parameters to the
door profile shape representation. The profile defines the outer
boundary to which the door lining parameters relate as:</blockquote>
   <blockquote>
<ul>

    <li class="small"><em>IfcDoorLiningProperties.LiningDepth</em> starting at distance
defined by <em>LiningOffset</em> going into the positive y
direction.</li>

    <li class="small"><em>IfcDoorLiningProperties.LiningThickness</em> offset into the
inner side of the rectangle.</li>
    <li class="small"><em>IfcDoorLiningProperties.LiningOffset</em> distance along the
positive y direction to where the <em>LiningDepth</em> applies.</li>
    
<li class="small"><em>IfcDoorLiningProperties.ThresholdThickness</em> starting at
the bottom edge of the rectangle into the inner side of the
rectangle</li>

    <li class="small"><em>IfcDoorLiningProperties.ThresholdDepth</em> starting at
distance defined by <em>LiningOffset</em> going into the positive y
direction.</li>
  
    <li class="small"><em>IfcDoorLiningProperties.TransomOffset</em> starting at the 
bottom edge of the rectangle (along local x axis) into the inner
side of the rectangle, distance provided as percentage of overall
height. Distance to the centre line of the transom.</li>
   
</ul></blockquote>
  
</td>

 </tr>

 <tr valign="top">
  
<td>
<p class="figure">Figure 209 &mdash; Door profile</p>
</td>
  
<td>&nbsp;</td>

 </tr>

</table>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="1d897220-740d-4793-9a8d-5d2774c7bc00" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="bcc55ba9-3739-4402-bf46-1ccb9465d467" name="IfcDuctSegment" status="sample" applicableRootEntity="IfcDuctSegment">
          <Concepts>
            <Concept uuid="c4dd0fe5-4948-4337-9de4-37f8422ab2bd" name="Port" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <Template ref="bafc93b7-d0e2-42d8-84cf-5da20ee1480a" />
              <TemplateRules operator="and">
                <TemplateRule Description="The flow inlet." Parameters="PortName[Value]='Inlet' AND SystemType[Value]='NOTDEFINED' AND Flow[Value]='SINK'" />
                <TemplateRule Description="The flow outlet." Parameters="PortName[Value]='Outlet' AND SystemType[Value]='NOTDEFINED' AND Flow[Value]='SOURCE'" />
              </TemplateRules>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="1ba7ee5e-e3ae-4054-b6b6-7708a92a363c" name="IfcElement" status="sample" applicableRootEntity="IfcElement">
          <Definitions>
            <Definition>
              <Body><![CDATA[]]></Body>
            </Definition>
          </Definitions>
          <Concepts>
            <Concept uuid="b25546fb-9338-4344-a9d3-80cd240a4485" name="Product Grid Placement" status="sample" override="false">
              <Template ref="e1d7f307-b9b2-4f45-837a-af7bead33464" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="731cd346-6fc2-4d4a-8258-419a06c0ac7e" name="Body SurfaceModel Geometry" status="sample" override="false">
              <Template ref="17d34a12-9403-40f4-bf82-65399be23c55" />
            </Concept>
            <Concept uuid="c79f8ed9-f582-4a4a-8b0c-143f010e9f5a" name="Body CSG Geometry" status="sample" override="false">
              <Template ref="a0ab7630-6965-495e-be8f-d106fd2599c2" />
            </Concept>
            <Concept uuid="8fe0b3f8-a8c4-4acb-b8dc-e18d87105f12" name="Body Clipping Geometry" status="sample" override="false">
              <Template ref="2cdbc2f5-9b0c-43ea-9d2a-9d72d0147e00" />
              <TemplateRules operator="and">
                <TemplateRule Parameters="Identifier[Value]='Body' AND Type[Value]='Clipping' AND Items[Type]='IfcBooleanClippingResult'" />
              </TemplateRules>
            </Concept>
            <Concept uuid="fa16b6e8-4f1c-4048-b3a7-01659d262492" name="Body Brep Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<p>Any <em>IfcElement</em> (so far no further constraints are
 defined at the level of its subtypes) may be represented as a
 single or multiple Boundary Representation models (which are 
restricted to be faceted Brep's with or without voids). The Brep 
representation allows for the representation of complex element 
shape.</p>
<p>&nbsp;</p>


<table>
 
<tr>
  
<td><img src="../../../figures/ifcbuildingelement-brep-layout1.gif" alt=
"Brep representation" border="0" height="275" width="400"></td>

  <td><blockquote class="example">EXAMPLE&nbsp; As shown in Figure 166, the Brep representation is given by an
 <em>IfcShapeRepresentation</em>, which includes one or more 
items, all of type <em>IfcFacetedBrep</em>. In some cases it may be useful to also expose a simple 
representation as a bounding box representation of the same complex 
shape.</blockquote> </td>
 </tr>

 <tr>
  
<td>
<p class="figure">Figure 166 &mdash; Building element body boundary
representation</p>
</td>
  <td>&nbsp;</td>
 </tr>


</table>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="8fb923f5-b82d-48d2-ad29-d678ca473fda" />
            </Concept>
            <Concept uuid="7ae12532-8b84-4a4b-9835-98cccfc8c7f6" name="Body AdvancedBrep Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p><p>An <em>IfcElement</em> (so far no further constraints are
 defined at the level of its subtypes or by view definitions) may be 
represented as a single or multiple boundary representation models, which include advanced surfaces, usually refered to 
as NURBS surfaces. The 'AdvancedBrep' representation allows for the 
representation of complex free-form element shape.</p>

<blockquote class="note">NOTE&nbsp; View definitions or implementer agreements may restrict or disallow the use of 'AdvancedBrep' geometry.</blockquote>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="fc763575-50f1-4bc0-bbf2-382380152047" />
            </Concept>
            <Concept uuid="026111d9-54de-4a78-b528-a10cf0cadf6a" name="Element Projecting" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <Template ref="14891e19-2eaa-4641-8913-629bb9a60801" />
            </Concept>
            <Concept uuid="534519dd-aebb-4f94-9a9d-e897017916de" name="Element Interference" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <Template ref="1e6182fc-1f47-44d3-9b78-17556500f386" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="466a8b25-5e97-4aef-afbb-008c435d369d" name="IfcElementAssemblyType" status="sample" applicableRootEntity="IfcElementAssemblyType">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Element assemblies may be used for compositions of parts used in other building elements, such as framing for walls and slabs.</p>

<p>Grids may be used to indicate coordinated placement, where <i>IfcGridAxis</i> may use <i>IfcLine</i> with an <i>IfcVector</i> having a discrete magnitude to indicate a repetition interval; if such magnitude is defined, then any elements placed according to such grid axis implicitly repeat at the defined interval within the boundary defined at the occurrence ('Axis' representation for linear elements such as walls, 'FootPrint' representation for area-based elements such as slabs, 'BoundingBox' representation for volume-based elements such as cabinetry).</p>

<p>Figure 234 illustrates an element assembly type used for slab framing.</p>

<table border="0" cellpadding="2" cellspacing="2" summary="voiding">
<tr><td valign="top"><img src="../../../figures/ifcelementassemblytype-beamgrid.png" alt="voiding" border="0"></td></tr>
<tr><td><p class="figure">Figure 234 &mdash; Element assembly for slab framing</p></td></tr>
</table>

<p>Figure 235 illustrates an element assembly type used for wall framing.</p>

<table border="0" cellpadding="2" cellspacing="2" summary="voiding">
<tr><td valign="top"><img src="../../../figures/ifcelementassemblytype-bracedframe.png" alt="voiding" border="0"></td></tr>
<tr><td><p class="figure">Figure 235 &mdash; Element assembly for wall framing</p></td></tr>
</table>]]></Body>
            </Definition>
          </Definitions>
        </ConceptRoot>
        <ConceptRoot uuid="0593a104-331b-41aa-8ffc-33e15e5a4de2" name="IfcElementType" status="sample" applicableRootEntity="IfcElementType">
          <Concepts>
            <Concept uuid="6ec6b5c3-af3f-4791-8d5d-a6e1aebaa167" name="Material Constituents" status="sample" override="false">
              <Template ref="d96f7f7d-e742-4db8-9b5d-18a36a6df884" />
            </Concept>
            <Concept uuid="d59f0b28-eb83-4d79-b39c-e4b32c7c262e" name="Material Single" status="sample" override="false">
              <Template ref="5f39a814-44a0-4fb3-8dc6-ddaa0560fc54" />
            </Concept>
            <Concept uuid="cd2d595e-1cba-41d2-85d9-cdf87657ee36" name="Type Body CSG Geometry" status="sample" override="false">
              <Template ref="ff9aa32a-3c66-4484-a81e-c0e8f9b45a2a" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
              <TemplateRules operator="and">
                <TemplateRule Parameters="RepresentationType[Value]='CSG' AND Geometry[Type]='IfcBlock'" />
                <TemplateRule Parameters="RepresentationType[Value]='CSG' AND Geometry[Type]='IfcRectangularPyramid'" />
                <TemplateRule Parameters="RepresentationType[Value]='CSG' AND Geometry[Type]='IfcRightCircularCone'" />
                <TemplateRule Parameters="RepresentationType[Value]='CSG' AND Geometry[Type]='IfcRightCircularCylinder'" />
                <TemplateRule Parameters="RepresentationType[Value]='CSG' AND Geometry[Type]='IfcSphere'" />
                <TemplateRule Parameters="RepresentationType[Value]='CSG' AND Geometry[Type]='IfcBooleanResult'" />
                <TemplateRule Parameters="RepresentationType[Value]='CSG' AND Geometry[Type]='IfcExtrudedAreaSolid'" />
                <TemplateRule Parameters="RepresentationType[Value]='CSG' AND Geometry[Type]='IfcExtrudedAreaSolidTapered'" />
                <TemplateRule Parameters="RepresentationType[Value]='CSG' AND Geometry[Type]='IfcRevolvedAreaSolid'" />
                <TemplateRule Parameters="RepresentationType[Value]='CSG' AND Geometry[Type]='IfcRevolvedAreaSolidTapered'" />
                <TemplateRule Parameters="RepresentationType[Value]='CSG' AND Geometry[Type]='IfcSurfaceCurveSweptAreaSolid'" />
              </TemplateRules>
            </Concept>
            <Concept uuid="02dc636f-1be8-4e9e-aa22-e03c2bc551dd" name="Type Body Brep Geometry" status="sample" override="false">
              <Template ref="c62f6292-e594-45dc-af81-7efd128fd973" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="f0a70cd6-80aa-4f19-b2aa-5381ddecf667" name="Type Body AdvancedBrep Geometry" status="sample" override="false">
              <Template ref="1c9da227-29f6-4fb7-ad2f-b26f307ab3e3" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="d4e584cf-be32-4ed1-8f43-d63febc92e70" name="Element Type Aggregation" status="sample" override="false">
              <Template ref="9fcc5a66-22a7-41ac-9328-31759845d152" />
            </Concept>
            <Concept uuid="2e2b6c5d-f0e1-4501-80a2-5cab74825cda" name="Property Sets for Types" status="sample" override="false">
              <Template ref="4be3312a-3199-492e-b204-cac2229a9ade" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="f06383f6-3e68-424c-8386-86a445310e31" name="IfcFlowSegment" status="sample" applicableRootEntity="IfcFlowSegment">
          <Concepts>
            <Concept uuid="b5d91ee7-fdc2-4f18-b96b-e6a37c5ff274" name="Material Profile Set Usage" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The material of the <b>IfcFlowSegment</b> is defined using one of the following entities:</p>
<ul>

<li><a href="../../ifcmaterialresource/lexical/ifcmaterialprofilesetusage.htm">IfcMaterialProfileSetUsage</a> : for parametric segments, this defines the cross section and alignment to the 'Axis' representation, from which the 'Body' representation may be generated.</li>

<li><a href="../../ifcmaterialresource/lexical/ifcmaterialprofilesetusage.htm">IfcMaterialProfileSet</a> : for non-parametric segments (having fixed length or path), this may define the cross section for analysis purposes, however the 'Body' representation is independently generated.</li>

<li><a href="../../ifcmaterialresource/lexical/ifcmaterialconstituentset.htm">IfcMaterialConstituentSet</a> : for elements containing multiple materials where profiles are not applicable, this indicates materials at named parts.</em>
</li>

<li>
<a href="../../ifcmaterialresource/lexical/ifcmaterial.htm">IfcMaterial</a> : for elements comprised of a single material where profiles are not applicable, this indicates the material.</li>
</ul>

<p>The material is attached by the <em>RelatingMaterial</em> attribute on the <a href="../../ifcproductextension/lexical/ifcrelassociatesmaterial.htm">IfcRelAssociatesMaterial</a> relationship.  It is accessible by the <em>HasAssociations</em> inverse attribute.  Material information can also be given at the <a href="../../ifcsharedbldgserviceelements/lexical/ifcflowsegmenttype.htm">IfcFlowSegmentType</a>, defining the common attribute data for all occurrences of the same type.  Standard names and material types are defined at subtypes.</p>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6aa01429-b566-4b36-875a-3162088a9831" />
            </Concept>
            <Concept uuid="3f8d786d-f433-413e-a57a-c05d9f91c908" name="Axis Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>
Standard representations are defined at the supertype <em>IfcDistributionFlowElement</em>.  For parametric flow segments where <a href="../../ifcmaterialresource/lexical/ifcmaterialprofilesetusage.htm">IfcMaterialProfileSetUsage</a> is defined and an 'Axis' representation is defined, then the 'Body' representation may be generated using the 'SweptSolid' or 'AdvancedSweptSolid' representation types by sweeping the profile(s) along the axis.
</p>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="3bf716df-3990-4bfc-8045-9e4011c9b622" />
              <TemplateRules operator="and">
                <TemplateRule Parameters="" />
              </TemplateRules>
            </Concept>
            <Concept uuid="57ae85a3-f767-4fbf-b92e-b1b18974fe59" name="Material Profile Set" status="sample" override="false">
              <Template ref="427ac055-2a71-42c2-a423-71689fa75c59" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="027a3863-f902-4aa6-bb6d-98ebaf6a7f8d" name="IfcFlowSegmentType" status="sample" applicableRootEntity="IfcFlowSegmentType">
          <Concepts>
            <Concept uuid="0c001091-17f9-4673-aa32-460611f6d360" name="Material Profile Set" status="sample" override="false">
              <Template ref="427ac055-2a71-42c2-a423-71689fa75c59" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="0e6ba773-2b17-435a-902d-1c33ba42dba5" name="IfcFooting" status="sample" applicableRootEntity="IfcFooting">
          <Concepts>
            <Concept uuid="fd2f50e9-4883-4500-b0d0-315ad7c36932" name="Axis 2D Geometry" status="sample" override="false">
              <Template ref="782444e8-d681-475a-9034-a9e7f53c6d65" />
              <TemplateRules operator="and">
                <TemplateRule Parameters="Identifier[Value]='Axis' AND Type[Value]='Curve2D' AND Items[Type]='IfcIndexedPolyCurve'" />
              </TemplateRules>
            </Concept>
            <Concept uuid="ea22abf4-5790-463f-ba00-f8163660cfa8" name="Material Profile Set Usage" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6aa01429-b566-4b36-875a-3162088a9831" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="a4b88d73-2f2d-47ee-9c92-fe558da3b25b" name="IfcMemberStandardCase" status="sample" applicableRootEntity="IfcMemberStandardCase">
          <Definitions>
            <Definition>
              <Body><![CDATA[]]></Body>
            </Definition>
          </Definitions>
          <Concepts>
            <Concept uuid="58daaf5a-9d06-4eca-8e07-ad19c2f64eb6" name="Material Profile Set Usage" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Figure 211 illustrates assignment of <em>IfcMaterialProfileSetUsage</em> and <em>IfcMaterialProfileSet</em> to the <em>IfcMemberStandardCase</em> as the member occurrence and to the <em>IfcMemberType</em>. The same <em>IfcMaterialProfileSet</em> shall be shared by many occurrences of <em>IfcMaterialProfileSetUsage</em>. This relationship shall be consistent to the relationship between the <em>IfcMemberType</em> and the <em>IfcMemberStandardCase</em>.</p>

<table border="0" cellpadding="2" cellspacing="2">
<tr><td width="510" align="left" valign="top"><img alt="Material profile set and usage" src="../../../figures/ifcmemberstandardcase-01.png" height="500" width="500"></td></tr>
<tr><td><p class="figure">Figure 211 &mdash; Member profile usage</p></td></tr>
</table>


<p>Figure 212 illustrates assignment of a composite profile by using <em>IfcCompositeProfile</em> for geometric representation and several <em>IfcMaterialProfile</em>'s within the <em>IfcMaterialProfileSet</em>. The number of <em>IfcMaterialProfile</em>'s within the <em>IfcMaterialProfileSet</em> is restricted to maximal 2 and
requires the use of <em>IfcExtrudedAreaSolidTapered</em>, or <em>IfcRevolvedAreaSolidTapered</em> for the correct 'Body' shape representation.</p>

<table border="0" cellpadding="2" cellspacing="2">
<tr><td width="510" align="left" valign="top"><img alt="Material profile set and usage" src=
"../../../figures/ifcmemberstandardcase-02.png" height="550" width="500"></td></tr>
<tr><td><p class="figure">Figure 212 &mdash; Member composite profiles</p></td></tr>
</table>

<p>The material of the <em>IfcMemberStandardCase</em> is defined by
<em>IfcMaterialProfileSetUsage</em> and attached by the
<em>IfcRelAssociatesMaterial</em><em>.RelatingMaterial</em>. It is
accessible by the inverse <em>HasAssociations</em> relationship.
Composite profile members can be represented by refering to
several <em>IfcMaterialProfile</em>'s within the
<em>IfcMaterialProfileSet</em> that is referenced from the
<em>IfcMaterialProfileSetUsage</em>.</p>
<p>Material information can also be given at the
<em>IfcMemberType</em>, defining the common attribute data for all
occurrences of the same type. It is then accessible by the
inverse <em>IsDefinedBy</em> relationship pointing to
<em>IfcMemberType.HasAssociations</em> and via
<em>IfcRelAssociatesMaterial.RelatingMaterial</em>. See <b>Type Use
Definition</b> for additional agreements for standard
members.</p>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6aa01429-b566-4b36-875a-3162088a9831" />
              <Requirements>
                <Requirement applicability="export" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="3779ba15-e438-4fa5-a25a-46fc5d8c02d0" name="Axis 3D Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following additional constraints apply to the 'Axis'
representation, if the 'Body' shape representation has the
<em>RepresentationType</em> : 'SweptSolid':</p>

<ul>

 <li><em>Axis</em>
  <ul>
   <li><em>IfcPolyline</em> having two <em>Points</em>, or
<em>IfcTrimmedCurve</em> with <em>BasisCurve</em> of Type
<em>IfcLine</em> for 'SweptSolid' provided as
<em>IfcExtrudedAreaSolid</em>. The axis curve lies on the z axis of
the object coordinate system.</li>

   <li><em>IfcTrimmedCurve</em> with <em>BasisCurve</em> of Type
<em>IfcCircle</em> for 'SweptSolid' provided as
<em>IfcRevolvedAreaSolid</em>. The axis curve lies on the x/z plane
of the object coordinate system, the tangent at the start is along
the positive z-axis.</li>

  </ul>
 </li>
</ul>


<p>&nbsp;</p>


<table border="0" cellpadding="2" cellspacing="2" summary="Axis">
 
<tr>
  <td align="left" valign="top" width="350"><img src="../../../figures/ifcmemberstandardcase_axis-01.png" alt="Axis" border="1"></td>
  <td>

<blockquote class="example">EXAMPLE&nbsp; As shown in Figure 101, the axis representation can be used to represent the system length of a member that may extent the body length of the member.</blockquote>

 </td>
 </tr>

 <tr>
  <td><p class="figure">Figure 213 &mdash; Member axis representation</p></td>
  <td>&nbsp;</td>
 </tr>

</table>

<table border="0" cellpadding="2" cellspacing="2" summary="Axis">
 
<tr>
  <td align="left" valign="top" width="350"><img src="../../../figures/ifcmemberstandardcase_axis-02.png" alt="Axis" border="1"></td>
  <td align="left" valign="top"><blockquote class="example">EXAMPLE&nbsp; As shown in Figure 102, the axis representation shall be used to represent the cardinal point as the offset between the 'Axis' and the extrusion path of the member. The extrusion path is provided as <em>IfcExtrudedAreaSolid.ExtrudedDirection</em> and should be parallel to the 'Axis'.  It has to be guaranteed that the value provided by <em>IfcMaterialProfileSetUsage.CardinalPoint</em> is consistent to the <em>IfcExtrudedAreaSolid.Position</em>.</blockquote>

</td>
 </tr>
 
<tr>
  <td><p class="figure">Figure 214 &mdash; Member axis cardinal point</p></td>
  <td>&nbsp;</td>
 </tr>

</table>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="b894d8cb-fb41-45ec-ba18-72cac6baff34" />
              <Requirements>
                <Requirement applicability="export" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="83869936-d0ad-4391-bc3d-719fed73460d" name="Body SweptSolid StandardizedProfile Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<p>The following additional constraints apply to the 'SweptSolid'
representation:</p>

<ul>

 <li><u>Solid</u>: <em>IfcExtrudedAreaSolid</em>,
<em>IfcRevolvedAreaSolid</em> shall be supported</li>

 
<li><u>Profile</u>: All subtypes of
<em>IfcParameterizedProfileDef</em></li>
 <li><u>Profile Position</u> : For all single profiles, the
<em>IfcParameterizedProfileDef.Position</em> shall be NIL, or
having <em>Location</em> = 0.,0. and <em>RefDirection</em> =
1.,0.</li>

 <li><u>Extrusion</u>: perpendicular to the profile
 direction.</li>

 <li><u>Orientation</u>: The y-axis of the profile, as determined
by <em>IfcSweptAreaSolid.Position.P[2]</em> shall point to the
Z-Axis. It indicates the "role" of the column, a role=0&deg;
means y-axis of profile = Z-axis of reference coordinate system.
In the exception of a vertical member, the y-axis shall point to
the Y-axis.</li>

</ul>


<p>Figure 214 illustrates a 'SweptSolid' geometric representation with cardinal point applied as <b>1</b> (bottom left).</p>

<p>The following interpretation of dimension parameter applies for rectangular members:</p>

<ul>

 <li><small><em>IfcRectangleProfileDef.YDim</em> interpreted as member width</small></li>
 
<li><small><em>IfcRectangleProfileDef.XDim</em> interpreted as member depth</small></li>

</ul>

<p>The following interpretation of dimension parameter applies for circular members:</p>

<ul>

 <li><small><em>IfcCircleProfileDef.Radius</em> interpreted as beam radius.</small></li>

</ul>


<table cellpadding="2" cellspacing="2">
<tr valign="top"><td align="left" valign="top"><img src="../../../figures/ifcbeamstandardcase_sweptsolid-01.png" alt=
"standard member" border="1" height="300" width="400"></td></tr>
<tr><td><p class="figure">Figure 214 &mdash; Member body extrusion</p></td></tr>
</table>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="1d8079be-98fb-4c3e-a202-49fb218bfeb1" />
            </Concept>
            <Concept uuid="6c10e162-434a-42f1-a00c-f18a9af7123a" name="Body SweptSolid Composite Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6e79c7cc-e238-405d-8f0e-87b4fabf366b" />
            </Concept>
            <Concept uuid="3da8997c-9474-488b-9c70-3b3b2f3a9c89" name="Body AdvancedSwept Directrix Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<p>The following additional constraints apply to the
'AdvancedSweptSolid' representation type:</p>

<ul>

 <li><u>Solid</u>: <em>IfcSurfaceCurveSweptAreaSolid</em>, 
<em>IfcFixedReferenceSweptAreaSolid</em>, shall be supported.
</li>
 
<li><u>Profile</u>: all subtypes of <em>IfcProfileDef</em> (with 
exception of <em>IfcArbitraryOpenProfileDef</em>)</li>
 <li><u>Profile Position</u> : For all single profiles, the
 <em>IfcParameterizedProfileDef.Position</em> shall be NIL, or 
having <em>Location</em> = 0.,0. and <em>RefDirection</em> =
1.,0.</li>


</ul>



<blockquote class="note">NOTE&nbsp; Using <em>IfcExtrudedAreaSolidTapered</em>,
or <em>IfcRevolvedAreaSolidTapered</em> requires the use of two
<em>IfcMaterialProfile</em>'s within the
<em>IfcMaterialProfileSetUsageTapering</em> assinged to the
<em>IfcMemberStandardCase</em></blockquote>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="75af261d-d8ff-46be-8037-001930349f07" />
            </Concept>
            <Concept uuid="3ca529e8-5d72-4851-96eb-089cb3884868" name="Body AdvancedSwept Tapered Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<p>The following additional constraints apply to the
'AdvancedSweptSolid' representation type:</p>

<ul>

 <li><u>Solid</u>: 
<em>IfcExtrudedAreaSolidTapered</em>, 
<em>IfcRevolvedAreaSolidTapered</em> shall be supported.
</li>
 
<li><u>Profile</u>: all subtypes of <em>IfcProfileDef</em> (with 
exception of <em>IfcArbitraryOpenProfileDef</em>)</li>
 <li><u>Profile Position</u> : For all single profiles, the
 <em>IfcParameterizedProfileDef.Position</em> shall be NIL, or 
having <em>Location</em> = 0.,0. and <em>RefDirection</em> =
1.,0.</li>


</ul>



<blockquote class="note">NOTE&nbsp; Using <em>IfcExtrudedAreaSolidTapered</em>,
or <em>IfcRevolvedAreaSolidTapered</em> requires the use of two 
<em>IfcMaterialProfile</em>'s within the
<em>IfcMaterialProfileSetUsageTapering</em> assinged to the
<em>IfcMemberStandardCase</em></blockquote>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="714522b4-488e-495d-ba81-f10a5e41b1dc" />
            </Concept>
            <Concept uuid="affe7195-874c-438e-9de4-fda87a65368f" name="Body Clipping Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following constraints apply to the advanced
representation:</p>

<ul>

 <li><u>Solid</u>: see 'SweptSolid' geometric representation</li>
<li><u>Profile</u>: see 'SweptSolid' geometric
representation</li>
 
<li><u>Profile Position</u> : see 'SweptSolid' geometric
representation</li>
 
<li><u>Extrusion</u>: see 'SweptSolid' geometric
representation</li>

 <li><u>Boolean result</u>: The <em>IfcBooleanClippingResult</em>
shall be supported, allowing for Boolean differences between the
swept solid (here <em>IfcExtrudedAreaSolid</em>) and one or several
<em>IfcHalfSpaceSolid</em> (or its subtypes).</li>

</ul>


<p>Figure 215 illustrates an advanced geometric representation with use of <em>IfcBooleanClippingResult</em> between
an <em>IfcExtrudedAreaSolid</em> and an <em>IfcHalfSpaceSolid</em> to create a clipped body, with cardinal point applied as <b>4</b> (mid-depth left).</p>


<table cellpadding="2" cellspacing="2">
<tr valign="top"><td align="left" valign="top"><img src="../../../figures/ifcbeamstandardcase_clipping-01.png" alt="clipped beam" border="1" height="300" width="400"></td></tr>
<tr><td><p class="figure">Figure 215 &mdash; Member body clipping</p></td></tr>
</table>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="2cdbc2f5-9b0c-43ea-9d2a-9d72d0147e00" />
            </Concept>
            <Concept uuid="1ce789ea-8a2e-4e48-bccf-a0f4392f70da" name="Material Single" status="sample" override="false">
              <Template ref="5f39a814-44a0-4fb3-8dc6-ddaa0560fc54" />
            </Concept>
            <Concept uuid="905e7b4e-b5d6-4a07-bed1-8f3ee64b0a98" name="Mapped Geometry" status="sample" override="false">
              <Template ref="ecfdd7c8-71d5-449f-bf20-e63a25dcb9ba" />
            </Concept>
            <Concept uuid="f4ed79bb-b70f-462c-9b13-b15701295d7d" name="Body SweptSolid PolyCurve Geometry" status="sample" override="false">
              <Template ref="38710ccd-8ff5-41ba-8fda-08300907a02e" />
            </Concept>
            <Concept uuid="bb4085e8-40c8-45f5-bda9-4d52fd4ccad8" name="Body Tessellation Geometry" status="sample" override="false">
              <Template ref="5cfd4403-6545-4c6d-bc27-0a95a3d09950" />
            </Concept>
            <Concept uuid="6f4974d4-946b-4015-9b55-377c7e64605e" name="Body CSG Geometry" status="sample" override="false">
              <Template ref="a0ab7630-6965-495e-be8f-d106fd2599c2" />
            </Concept>
            <Concept uuid="ad98474b-5951-4e48-9bb6-bcf71ae1ab8f" name="Body SurfaceModel Geometry" status="sample" override="false">
              <Template ref="17d34a12-9403-40f4-bf82-65399be23c55" />
            </Concept>
            <Concept uuid="d4e929d1-f46b-4efe-b1d1-f65535631a78" name="Material Profile Set" status="sample" override="false">
              <Template ref="427ac055-2a71-42c2-a423-71689fa75c59" />
            </Concept>
            <Concept uuid="4dfd18c3-f920-4b68-9bda-8dd34b751c1a" name="Body AdvancedBrep Geometry" status="sample" override="false">
              <Template ref="fc763575-50f1-4bc0-bbf2-382380152047" />
            </Concept>
            <Concept uuid="53fd6576-191c-48a4-922c-d73726cb8c83" name="Body Brep Geometry" status="sample" override="false">
              <Template ref="8fb923f5-b82d-48d2-ad29-d678ca473fda" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="b9bf80df-f4da-4704-93fa-cccded3ae316" name="IfcMemberType" status="sample" applicableRootEntity="IfcMemberType">
          <Concepts>
            <Concept uuid="1fc695b3-1f20-4a13-8ea8-e852d54bfd34" name="Material Profile Set" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The material of the <em>IfcMemberType</em> is defined by the
<em>IfcMaterialProfileSet</em> or as fall back by
<em>IfcMaterial</em> and attached by the
<em>IfcRelAssociatesMaterial</em><em>.RelatingMaterial</em>. It is
accessible by the inverse <em>HasAssociations</em>
relationship.</p>

<blockquote class="note">
NOTE&nbsp; It is illegal to assign an <em>IfcMaterial</em> to an <em>IfcMemberType</em>, if there is at least one occurrences of <em>IfcMemberStandardCase</em> for this type.
</blockquote>

<p>The shared profile definition is defined by assigning an
<em>IfcMaterialProfileSet</em> (see material use definition above).
The <em>IfcMaterialProfile</em> refers to the subtype of
<em>IfcProfileDef</em> that is the common profile for all member
occurrence, if used. It is only applicable if the
<em>IfcMemberType</em> has only occurrences of type
<em>IfcMemberStandardCase</em> (see definition of
<em>IfcMemberStandardCase</em> for further information).</p>

<blockquote class="note">
NOTE&nbsp; The attribute <em>ProfileName</em> of the
<em>IfcProfileDef</em> subtype, referenced in
<em>IfcMaterialProfile</em> should contain a standardized profile
name according to local standards. However, an additional
geometric representation of the profile is necessary (e.g. as
<em>IfcExtrudedAreaSolid</em>). An importing application is allowed
to check for the existence of the profile name: in case of
identifying it as a standardized name, the corresponding profile
geometry and possibly other cross sectional properties can be
read from a library. Otherwise the geometric representation and
possible non geometric <em>IfcProfileProperties</em> have to be
used.</blockquote>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="427ac055-2a71-42c2-a423-71689fa75c59" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="76d5c449-caf1-41a6-8127-cf051ad4d9b4" name="IfcOpeningElement" status="sample" applicableRootEntity="IfcOpeningElement" />
        <ConceptRoot uuid="61dfca14-31fa-46e1-8c46-6bde188f2168" name="IfcOpeningStandardCase" status="sample" applicableRootEntity="IfcOpeningStandardCase">
          <Concepts>
            <Concept uuid="e18806d9-0ccf-457e-88b0-bdb4181b5112" name="Body SweptSolid Geometry" status="sample" override="false">
              <Template ref="cb7c18fa-cf83-4db1-be1b-c013ba4ed672" />
              <TemplateRules operator="and">
                <TemplateRule Parameters="Identifier[Value]='Body' AND Type[Value]='SweptSolid'" />
              </TemplateRules>
            </Concept>
            <Concept uuid="e12da311-a4f5-467d-9e80-54237699aa3b" name="Profile Geometry" status="sample" override="false">
              <Template ref="f16eb3be-ff88-4f33-97df-d55aed3a0f95" />
              <Requirements>
                <Requirement applicability="export" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="c21d1f38-1a49-4631-899a-d2f1933f6f15" name="IfcPile" status="sample" applicableRootEntity="IfcPile">
          <Concepts>
            <Concept uuid="fdd61629-5964-460f-8e98-942e06321e6c" name="Axis 3D Geometry" status="sample" override="false">
              <Template ref="b894d8cb-fb41-45ec-ba18-72cac6baff34" />
              <TemplateRules operator="and">
                <TemplateRule Parameters="Identifier[Value]='Axis' AND Type[Value]='Curve3D' AND Items[Type]='IfcIndexedPolyCurve'" />
              </TemplateRules>
            </Concept>
            <Concept uuid="5a1d2c43-6a83-482b-8f6c-fab267fa4bae" name="Material Profile Set Usage" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6aa01429-b566-4b36-875a-3162088a9831" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="f92b5d48-c98b-48cd-bee5-fe5e8b6a384f" name="IfcPipeSegment" status="sample" applicableRootEntity="IfcPipeSegment">
          <Concepts>
            <Concept uuid="d72b5121-09fb-44d1-90d5-6adb1685e5e9" name="Port" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[]]></Body>
                </Definition>
              </Definitions>
              <Template ref="bafc93b7-d0e2-42d8-84cf-5da20ee1480a" />
              <TemplateRules operator="and">
                <TemplateRule Description="The flow inlet." Parameters="PortName[Value]='Inlet' AND Flow[Value]='SINK' AND SystemType[Value]='NOTDEFINED'" />
                <TemplateRule Description="The flow outlet." Parameters="PortName[Value]='Outlet' AND SystemType[Value]='NOTDEFINED' AND Flow[Value]='SOURCE'" />
              </TemplateRules>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="b83d03ba-acab-4dbd-af98-ddac3db8a197" name="IfcPlateStandardCase" status="sample" applicableRootEntity="IfcPlateStandardCase">
          <Concepts>
            <Concept uuid="762d4deb-9d83-443e-87fe-ab206fa5fe7c" name="Material Layer Set Usage" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The material of the <em>IfcPlateStandardCase</em> is defined by
<em>IfcMaterialLayerSetUsage</em> and attached by the
<em>IfcRelAssociatesMaterial</em><em>.RelatingMaterial</em>. It is
accessible by the inverse <em>HasAssociations</em> relationship.
Multi-layer plates can be represented by refering to several
<em>IfcMaterialLayer</em>'s within the <em>IfcMaterialLayerSet</em>
that is referenced from the
<em>IfcMaterialLayerSetUsage</em>.&nbsp;</p>
<p>Material information can also be given at the
<em>IfcPlateType</em>, defining the common attribute data for all
occurrences of the same type.&nbsp;It is then accessible by the
inverse <em>IsDefinedBy</em> relationship pointing to
<em>IfcPlateType.HasAssociations</em> and via
<em>IfcRelAssociatesMaterial.RelatingMaterial</em>.</p>


<p>The <em>IfcPlateStandardCase</em> defines in addition that the
<em>IfcPlateType</em> should have a unique
<em>IfcMaterialLayerSet</em>, that is referenced by
the&nbsp;<em>IfcMaterialLayerSetUsage</em> assigned to all
occurrences of this <em>IfcPlateType</em>.</p>


<p>Figure 217 illustrates assignment of <em>IfcMaterialLayerSetUsage</em> and <em>IfcMaterialLayerSet</em> to the <em>IfcPlateStandardCase</em> as the plate occurrence and to the <em>IfcPlateType</em>. The same <em>IfcMaterialLayerSet</em> shall be shared by many occurrences of <em>IfcMaterialLayerSetUsage</em>. This relationship shall be consistent to the relationship between the <em>IfcPlateType</em> and the <em>IfcPlateStandardCase</em>.</p>


<table border="0" cellpadding="2" cellspacing="2" >

<tr><td width="610" align="left" valign="top">
<p><img src=
"../../../figures/ifcslab_materialusage-01.png" alt="Material layer set and usage" height="220" width=
"501">&nbsp;</p></td></tr>

<tr><td><p class="figure">Figure 217 &mdash; Plate type definition</p></td></tr>

</table>





<p>As shown in Figure 106, the following conventions shall be met:</p>
<ul>
<li>The reference coordinate system is the coordinate system established by the <em>IfcExtrudedAreaSolid.Position</em>.</li>
<li>The reference plane is the plane defined by the extruded profile of <em>IfcExtrudedAreaSolid.SweptSolid</em>. The <em>IfcMaterialLayerSetUsage.OffsetFromReferenceLine</em> is given as a distance from this plane.</li>
<li>The <em>IfcMaterialLayerSetUsage.DirectionSense</em> defines how the <em>IfcMaterialLayer</em>'s are assigned to the reference plane. POSITIVE means in direction to the positive z-axis of the reference coordinate system.</li>
<li>The <em>IfcMaterialLayerSetUsage.OffsetFromReferenceLine</em> is the distance parallel to the reference plane and always perpendicular to the base (XY) plane of the reference coordinate system. This is independent of a potential non-perpendicular extrusion given by <em>IfcExtrudedAreaSolid.ExtrudedDirection</em> &lt;&gt; 0.,0.,1. A positive value of <em>IfcMaterialLayerSetUsage.OffsetFromReferenceLine</em> would then point into the positive z-axis of the reference coordinate system.</li>
<li>The <em>Thickness</em> of each <em>IfcMaterialLayer</em> shall be the parallel distance (measured perpendicular to the base plane). The <em>TotalThickness</em> of the <em>IfcMaterialLayerSet</em> is the sum of all layer thicknesses and in case of a perpendicular extrusion identical with <em>IfcExtrudedAreaSolid.Depth</em></li>
<li>The <em>IfcMaterialLayerSetUsage.LayerSetDirection</em> i always AXIS3.</li>
</ul>

<table summary="material use definition for standard plates" border="0" cellpadding="2" cellspacing="2">
<tr><td align="left" valign="top" width="610"><img src="../../../figures/ifcmateriallayersetusage_slab-01.png" alt="plate material layer set" width="601" height="321" border="0"></td></tr>
<tr><td><p class="figure">Figure 218 &mdash; Plate material layers</p></td></tr>
</table>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6d5fb86f-3f2d-49fb-9528-077855ddcc47" />
              <Requirements>
                <Requirement applicability="export" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="e0569a83-7996-4a08-9ff0-08815329e52d" name="Body SweptSolid Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<p>The following additional constraints apply to the swept solid
representation:</p>
<ul>
<li><u>Solid</u>: <em>IfcExtrudedAreaSolid</em> is required,</li>
<li><u>Profile</u>: <em>IfcArbitraryClosedProfileDef,
IfcRectangleProfileDef, IfcRoundedRectangleProfileDef,
IfcCircleProfileDef, IfcEllipseProfileDef</em> shall be
supported.</li>
<li><u>Extrusion</u>: The profile can be extruded perpendicularly
or non-perpendicularly to the plane of the swept profile.</li>
<li><u>Material</u>: The definition of the
<em>IfcMaterialLayerSetUsage</em>, particularly of the
<em>OffsetFromReferenceLine</em> and the
<em>ForLayerSet.TotalThickness</em>, has to be consistent to the
'SweptSolid' representation.</li>
</ul>
<p>&nbsp;</p>
<table>

 <tr>
  <td><img src="../../../figures/ifcslab_standard-layout1.gif" alt="standard plate" border="0" height="274" width="399"></td>
  <td>

<blockquote class="example">EXAMPLE&nbsp; Figure 218 illustrates a 'SweptSolid' geometric representation. The following interpretation of dimension parameter applies for polygonal plates (in ground floor view): <em>IfcArbitraryClosedProfileDef.OuterCurve</em> being a closed bounded curve is interpreted as area (or foot print) of the plate.</blockquote>


 </td>
 </tr>

 <tr>
  <td><p class="figure">Figure 218 &mdash; Plate body extrusion</p></td>
  <td>&nbsp;</td>
 </tr>

</table>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="cb7c18fa-cf83-4db1-be1b-c013ba4ed672" />
              <TemplateRules operator="and">
                <TemplateRule Parameters="Identifier[Value]='Body' AND Type[Value]='SweptSolid'" />
              </TemplateRules>
            </Concept>
            <Concept uuid="dce3a2a0-5086-4827-9462-ff826158dc59" name="Body Clipping Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<p>The following constraints apply to the 'Clipping'
representation:</p>
<ul>
<li><u>Solid</u>: see 'SweptSolid' shape representation,</li>
<li><u>Profile</u>:&nbsp;see 'SweptSolid' shape
representation,</li>
<li><u>Extrusion</u>:&nbsp;see 'SweptSolid' shape
representation,</li>
<li><u>Material</u>:&nbsp;see 'SweptSolid' shape
representation,</li>
<li><u>Boolean result</u>: The <em>IfcBooleanClippingResult</em>
shall be supported, allowing for Boolean differences between the
swept solid (here <em>IfcExtrudedAreaSolid</em>) and one or several
<em>IfcHalfSpaceSolid</em>.</li>
</ul>


<p>&nbsp;</p>
<table>

 <tr>
  <td><img src="../../../figures/ifcslab_advanced-layout1.gif" alt="advanced plate" border="0" height="274" width="399"></td>
  <td><blockquote class="example">EXAMPLE&nbsp; Figure 219 illustrates a 'Clipping' geometric representation with definition of a plate using advanced geometric representation. The profile is extruded non-perpendicular and the plate body is clipped at the eave.</blockquote>

</td>
 </tr>

 <tr>
  <td><p class="figure">Figure 219 &mdash; Plate body clipping</p></td>
  <td>&nbsp;</td>
 </tr>

</table>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="2cdbc2f5-9b0c-43ea-9d2a-9d72d0147e00" />
            </Concept>
            <Concept uuid="329b769c-ae1f-4a35-8e83-a6292ca1b02d" name="Mapped Geometry" status="sample" override="false">
              <Template ref="ecfdd7c8-71d5-449f-bf20-e63a25dcb9ba" />
            </Concept>
            <Concept uuid="a2c78c3b-0c0b-4f75-bbf5-4e2feaea178d" name="Body SweptSolid PolyCurve Geometry" status="sample" override="false">
              <Template ref="38710ccd-8ff5-41ba-8fda-08300907a02e" />
            </Concept>
            <Concept uuid="0c6c780e-1b39-4c4e-ac1e-9c0e201acbfa" name="Body Tessellation Geometry" status="sample" override="false">
              <Template ref="5cfd4403-6545-4c6d-bc27-0a95a3d09950" />
            </Concept>
            <Concept uuid="d5076ed5-0abe-4e97-ac60-95857b1485c2" name="Body CSG Geometry" status="sample" override="false">
              <Template ref="a0ab7630-6965-495e-be8f-d106fd2599c2" />
            </Concept>
            <Concept uuid="4b05d5ee-c298-47ca-a28a-7ae24f301b7f" name="Body SurfaceModel Geometry" status="sample" override="false">
              <Template ref="17d34a12-9403-40f4-bf82-65399be23c55" />
            </Concept>
            <Concept uuid="1c984871-a400-4a31-a7b0-44011c48cd8e" name="Material Layer Set" status="sample" override="false">
              <Template ref="dfb5b3a9-50e3-46e2-8518-1f03e7cfd886" />
            </Concept>
            <Concept uuid="c0f3e562-8f17-476d-ad43-e1af571c6cbb" name="Material Single" status="sample" override="false">
              <Template ref="5f39a814-44a0-4fb3-8dc6-ddaa0560fc54" />
            </Concept>
            <Concept uuid="2ab5f29e-9b80-4b05-9c7c-161cd503b188" name="Body AdvancedBrep Geometry" status="sample" override="false">
              <Template ref="fc763575-50f1-4bc0-bbf2-382380152047" />
            </Concept>
            <Concept uuid="ff08071f-ae7b-4965-bb87-8a3e81f78ecc" name="Body Brep Geometry" status="sample" override="false">
              <Template ref="8fb923f5-b82d-48d2-ad29-d678ca473fda" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="5c6a2a38-e2a9-482e-b145-f6b9c7217b59" name="IfcPlateType" status="sample" applicableRootEntity="IfcPlateType">
          <Concepts>
            <Concept uuid="baca2b9b-fa19-48ac-aa0a-f3e22d3ae177" name="Material Layer Set" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The material of the <em>IfcPlateType</em> is defined by the
<em>IfcMaterialLayerSet</em> or as fall back by <em>IfcMaterial</em>
and attached by the
<em>IfcRelAssociatesMaterial</em><em>.RelatingMaterial</em>. It is
accessible by the inverse <em>HasAssociations</em> relationship.</p>
<blockquote class="note">NOTE&nbsp; It is illegal to assign an
<em>IfcMaterial</em> to an <em>IfcPlateType</em>, if there is at least
one occurrences of <em>IfcPlateStandardCase</em> for this
type.</blockquote>

<p>The shared material layer set definition is defined by assigning
an <em>IfcMaterialLayerSet</em> (see material use definition above).
The <em>IfcMaterialLayer</em> refers to one or several of
<em>IfcMaterial</em> that is the common for all plate occurrence, if
used. It is only applicable if the <em>IfcPlateType</em> has only
occurrences of type <em>IfcPlateStandardCase</em> (see definition of
<em>IfcPlateStandardCase</em> for further information).</p>
<blockquote class="note">NOTE&nbsp; Since each individual instance of
<em>IfcPlateStandardCase</em> defines its own
<em>IfcMaterialLayerSetUsage</em> including the offset from the
reference plane, the same <em>IfcPlateType</em> can be used
independently of the reference plane alignment of its
occurrences.</blockquote>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="dfb5b3a9-50e3-46e2-8518-1f03e7cfd886" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="dc465171-eb73-43c3-8439-3bf1ad5c68af" name="IfcProject" status="sample" applicableRootEntity="IfcProject">
          <Concepts>
            <Concept uuid="f7aa9726-a69e-4dde-b8cb-c6338cb5ad15" name="Project Template Definitions" status="sample" override="false">
              <Template ref="d6eddceb-c102-4247-8ec0-24e7d4c5da9b" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="ae07cb76-065c-495a-832e-c0854d8e8ef7" name="IfcProjectLibrary" status="sample" applicableRootEntity="IfcProjectLibrary">
          <Concepts>
            <Concept uuid="581ff76f-7c30-40e8-9ee3-dbb74ab230e5" name="Project Library Information" status="sample" override="false">
              <Template ref="f71de28e-4352-4f0d-9830-4fa13534a705" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="7b2421bb-0311-414b-ae45-6a551c60e047" name="Object Type Definitions" status="sample" override="false">
              <Template ref="634e27f7-7edb-4e22-b8cc-25f1cdc765ce" />
            </Concept>
            <Concept uuid="5fefb1c9-1031-4001-b664-9f4b44f78607" name="Property Template Definitions" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>If a project includes custom properties for which end users should be able to view and/or edit, then backing property templates must be defined. 
Such templates define applicable data types and values. Applications should not allow modification of any custom properties (other than those defined within this specification) for which no template is available. 
</p>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="d6eddceb-c102-4247-8ec0-24e7d4c5da9b" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="1bcc6b85-378e-43c0-a502-707bfc8519c6" name="IfcPropertySet" status="sample" applicableRootEntity="IfcPropertySet" />
        <ConceptRoot uuid="91b142ea-ffb0-4783-abb1-df191413d732" name="IfcRelConnectsWithRealizingElements" status="sample" applicableRootEntity="IfcRelConnectsWithRealizingElements" />
        <ConceptRoot uuid="31db140e-10bd-4d8a-ae75-0acc61c0dce6" name="IfcRoot" status="sample" applicableRootEntity="IfcRoot">
          <Concepts>
            <Concept uuid="890d32b3-d768-4c61-ad5d-badf84cb9183" name="Revision Control" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Ownership, history, and merge state is captured using <i>IfcOwnerHistory</i>.</p>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="b441c773-3fdc-42b6-a323-ad268dcd85f2" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="0a03833e-eb30-441d-aa09-fc88c792a19d" name="IfcSlabElementedCase" status="sample" applicableRootEntity="IfcSlabElementedCase">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Elemented slabs extend the concepts of standard slabs with the following features, as shown in Figure 234:</p>
<ul>
<li>The slab has a type (<i>IfcSlabType</i>) that indicates material layers and corresponding elements to be placed parametrically.</li>
<li>The slab is decomposed into elements for part occurrences, each corresponding to parts defined at the slab type.</li>
<li>The relationship <i>IfcRelConnectsWithRealizingElements</i> indicates how parts are connected.</li>
</ul>

<table border="0" cellpadding="2" cellspacing="2" summary="voiding">
<tr><td valign="top"><img src="../../../figures/ifcslabelementedcase-floor.png" alt="voiding" border="0"></td></tr>
<tr><td><p class="figure">Figure 234 &mdash; Slab elemented case</p></td></tr>
</table>]]></Body>
            </Definition>
          </Definitions>
          <Concepts>
            <Concept uuid="c580e1d9-2807-4e2f-b840-a55f326831ba" name="Material Layer Set Usage" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Similar to standard slabs (<i>IfcSlabStandardCase</i>), elemented slabs are defined parametrically with <i>IfcMaterialLayerSetUsage</i>, but go into further detail, where each material layer corresponds to an aggregated part of a particular type, where such parts may be further decomposed and/or use parametric material definitions.
</p>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6d5fb86f-3f2d-49fb-9528-077855ddcc47" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="21f79530-e7fc-403e-a1cc-be26dae0f679" name="IfcSlabStandardCase" status="sample" applicableRootEntity="IfcSlabStandardCase">
          <Concepts>
            <Concept uuid="710de5cf-0908-44cc-a7bf-2808f7c38aed" name="Material Layer Set Usage" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>
Multi-layer slabs can be represented by refering to several
<em>IfcMaterialLayer</em>'s within the <em>IfcMaterialLayerSet</em>
that is referenced from the
<em>IfcMaterialLayerSetUsage</em>.&nbsp;</p>

<p>Material information can also be given at the
<em>IfcSlabType</em>, defining the common attribute data for all
occurrences of the same type. It is then accessible by the 
inverse <em>IsDefinedBy</em> relationship pointing to
<em>IfcSlabType.HasAssociations</em> and via
<em>IfcRelAssociatesMaterial.RelatingMaterial</em>. The <em>IfcSlabStandardCase</em> defines in addition that the
<em>IfcSlabType</em> should have a unique <em>IfcMaterialLayerSet</em>,
that is referenced by the&nbsp;<em>IfcMaterialLayerSetUsage</em>
assigned to all occurrences of this <em>IfcSlabType</em>.</p>
<p>&nbsp;</p>



<table>

 <tr>
  <td><img src="../../../figures/ifcslab_materialusage-01.png" alt="Material layer set and usage" height="220" width="501"></td>
  
<td><blockquote class="example">EXAMPLE&nbsp; Figure 225 illustrates assignment of <em>IfcMaterialLayerSetUsage</em> and <em>IfcMaterialLayerSet</em> to the <em>IfcSlabStandardCase</em> as the slab occurrence and to the <em>IfcSlabType</em>. The same <em>IfcMaterialLayerSet</em> shall be shared by many occurrences of <em>IfcMaterialLayerSetUsage</em>. This relationship shall be consistent to the relationship between the <em>IfcSlabType</em> and the <em>IfcSlabStandardCase</em>.</blockquote></td>
 </tr>
 
<tr><td><p class="figure">Figure 225 &mdash; Slab type definition</p></td>
  <td>&nbsp;</td>
 </tr>

</table>





<p>Figure 226 illustrates slab material usage, where the following conventions shall be met:</p>

<ul>

 <li>The reference coordinate system is the coordinate system established by the <em>IfcExtrudedAreaSolid.Position</em>.</li>
 
<li>The reference plane is the plane defined by the extruded profile of <em>IfcExtrudedAreaSolid.SweptSolid</em>. The <em>IfcMaterialLayerSetUsage.OffsetFromReferenceLine</em> is given as a distance from this plane.</li>

 <li>The <em>IfcMaterialLayerSetUsage.DirectionSense</em> defines how the <em>IfcMaterialLayer</em>'s are assigned to the reference plane. POSITIVE means in direction to the positive z-axis of the reference coordinate system.</li>
<li>The <em>IfcMaterialLayerSetUsage.OffsetFromReferenceLine</em> is the distance parallel to the reference plane and always perpendicular to the base (XY) plane of the reference coordinate system. This is independent of a potential non-perpendicular extrusion given by <em>IfcExtrudedAreaSolid.ExtrudedDirection</em> &lt;&gt; 0.,0.,1. A positive value of <em>IfcMaterialLayerSetUsage.OffsetFromReferenceLine</em> would then point into the positive z-axis of the reference coordinate system.</li>
<li>The <em>Thickness</em> of each <em>IfcMaterialLayer</em> shall be the parallel distance (measured perpendicular to the base plane). The <em>TotalThickness</em> of the <em>IfcMaterialLayerSet</em> is the sum of all layer thicknesses and in case of a perpendicular extrusion identical with <em>IfcExtrudedAreaSolid.Depth</em></li>
<li>The <em>IfcMaterialLayerSetUsage.LayerSetDirection</em> is always AXIS3.</li>
</ul>



<table summary="material use definition for standard slabs">

 <tr>
  <td align="left" valign="top" width="610">
<img src="../../../figures/ifcmateriallayersetusage_slab-01.png" alt=
"slab material layer set" width="601" height="321" border="0">
</td></tr>
<tr><td align="left" valign="top" width="610">
<img src="../../../figures/ifcmateriallayersetusage_roofslab-01.png" alt=
"roof slab material layer set" width="600" height="400" border=
"0"></td></tr>
<tr><td><p class="figure">Figure 226 &mdash; Slab material layers</p></td></tr>
</table>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6d5fb86f-3f2d-49fb-9528-077855ddcc47" />
              <Requirements>
                <Requirement applicability="export" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="9a7af5ff-c14e-4736-bf25-42d34e56a21c" name="Body SweptSolid Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following additional constraints apply to the swept solid
representation:</p>

<ul>

 <li><u>Solid</u>: <em>IfcExtrudedAreaSolid</em> is required,</li>
<li><u>Profile</u>: <em>IfcArbitraryClosedProfileDef,
IfcRectangleProfileDef, IfcCircleProfileDef,
IfcEllipseProfileDef</em> shall be supported.</li>

 <li><u>Extrusion</u>: The profile can be extruded perpendicularly
or non-perpendicularly to the plane of the swept profile.</li>
 <li><u>Material</u>: The definition of the
<em>IfcMaterialLayerSetUsage</em>, particularly of the
<em>OffsetFromReferenceLine</em> and the
<em>ForLayerSet.TotalThickness</em>, has to be consistent to the
'SweptSolid' representation.</li>
</ul>
<p>&nbsp;</p>


<table>
 
<tr>
  <td><img src="../../../figures/ifcslab_standard-layout1.gif" alt="standard slab" border="0" height="274" width="399"></td>
  <td>

<blockquote class="example">EXAMPLE&nbsp; Figure 226 illustrates a 'SweptSolid' geometric representation. The following interpretation of dimension parameter applies for polygonal slabs (in ground floor view):
 <em>IfcArbitraryClosedProfileDef.OuterCurve</em>: closed bounded curve interpreted as area (or foot print) of the slab.</blockquote>

</td>
 </tr>

 <tr>
  <td><p class="figure">Figure 226 &mdash; Slab body extrusion</p></td>
  <td>&nbsp;</td>
 </tr>

</table>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="cb7c18fa-cf83-4db1-be1b-c013ba4ed672" />
              <TemplateRules operator="and">
                <TemplateRule Parameters="Identifier[Value]='Body' AND Type[Value]='SweptSolid'" />
              </TemplateRules>
            </Concept>
            <Concept uuid="f55e4367-c6c1-4206-b23f-d225aff213e6" name="Body Clipping Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[

<p>The following constraints apply to the 'Clipping'
representation:</p>
<ul>
<li><u>Solid</u>: see 'SweptSolid' shape representation,</li>
<li><u>Profile</u>:&nbsp;see 'SweptSolid' shape
representation,</li>
<li><u>Extrusion</u>:&nbsp;see 'SweptSolid' shape
representation,</li>
<li><u>Material</u>:&nbsp;see 'SweptSolid' shape
representation,</li>
<li><u>Boolean result</u>: The <em>IfcBooleanClippingResult</em>
shall be supported, allowing for Boolean differences between the
swept solid (here <em>IfcExtrudedAreaSolid</em>) and one or several
<em>IfcHalfSpaceSolid</em>.</li>
</ul>
<p>&nbsp;</p>
<table>

 <tr>
  <td><img src="../../../figures/ifcslab_advanced-layout1.gif" alt="advanced slab" border=
"0" height="274" width="399"></td>
  <td>

<blockquote class="example">EXAMPLE&nbsp; Figure 227 illustrates a 'Clipping' geometric representation with definition of a roof slab using advanced geometric representation. The profile is extruded non-perpendicular and the slab body is clipped at the eave.</blockquote>

</td>
 </tr>

 <tr>
  <td><p class="figure">Figure 227 &mdash; Slab body clipping</p></td>
  <td>&nbsp;</td>
 </tr>

</table>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="2cdbc2f5-9b0c-43ea-9d2a-9d72d0147e00" />
            </Concept>
            <Concept uuid="f30500d2-df4a-494c-9d37-702979981633" name="Material Single" status="sample" override="false">
              <Template ref="5f39a814-44a0-4fb3-8dc6-ddaa0560fc54" />
            </Concept>
            <Concept uuid="b36fe7ca-c9ff-4e57-8660-fa5addcbab27" name="Mapped Geometry" status="sample" override="false">
              <Template ref="ecfdd7c8-71d5-449f-bf20-e63a25dcb9ba" />
            </Concept>
            <Concept uuid="b974d711-eb45-4a5c-bec5-6be67b863a50" name="Body SweptSolid PolyCurve Geometry" status="sample" override="false">
              <Template ref="38710ccd-8ff5-41ba-8fda-08300907a02e" />
            </Concept>
            <Concept uuid="fc9a3b31-a628-4c48-b858-3849179dbe1c" name="Body Tessellation Geometry" status="sample" override="false">
              <Template ref="5cfd4403-6545-4c6d-bc27-0a95a3d09950" />
            </Concept>
            <Concept uuid="e3b2424b-920e-4003-a180-8663bb54a567" name="Body CSG Geometry" status="sample" override="false">
              <Template ref="a0ab7630-6965-495e-be8f-d106fd2599c2" />
            </Concept>
            <Concept uuid="704ec51a-579c-4d50-bb26-82e6e1948653" name="Body SurfaceModel Geometry" status="sample" override="false">
              <Template ref="17d34a12-9403-40f4-bf82-65399be23c55" />
            </Concept>
            <Concept uuid="27a225bb-583b-4661-b730-a8e10d6d0855" name="Material Layer Set" status="sample" override="false">
              <Template ref="dfb5b3a9-50e3-46e2-8518-1f03e7cfd886" />
            </Concept>
            <Concept uuid="00f2b422-c493-4952-8193-0ba5bdd31318" name="Body AdvancedBrep Geometry" status="sample" override="false">
              <Template ref="fc763575-50f1-4bc0-bbf2-382380152047" />
            </Concept>
            <Concept uuid="6161fa49-4929-413a-9f77-bbc85b3ae3c4" name="Body Brep Geometry" status="sample" override="false">
              <Template ref="8fb923f5-b82d-48d2-ad29-d678ca473fda" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="14eda651-97c1-4571-8496-be3538999c20" name="IfcSlabType" status="sample" applicableRootEntity="IfcSlabType">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Slab types may be described at several levels of detail to support the following slab occurrences:</p>
<ul>
<li><i>IfcSlab</i>: Explicit geometry instantiated in exact form at occurrences.</li>
<li><i>IfcSlabStandardCase</i>: Implicit material layers filling boundary ('FootPrint' representation) defined at occurrences.</li>
<li><i>IfcSlabElementedCase</i>: implicit material layers and corresponding aggregated parts filling each layer.</li>
</ul>

<p>As shown in Figure 234, each material layer may be elaborated into an element (where the Name matches exactly), and each element may be defined by its own type, which may be further elaborated by material layers and/or parts. The <i>LayerThickness</i> of <i>IfcMaterialLayer</i> must be derived from the corresponding element as follows:</p>
<ul>
<li>if element does not have a type, then the thickness must be regarded as 0 (supporting scenario where a particular configuration may have one side a wall unfinished)
<li>if element has a material layer set, then it must equal the total thickness of the element's material layer set</li>
<li>if element has a material profile set, then it must equal the total thickness of the element's material profile set</li>
<li>if element is decomposed into parts (such as <i>IfcElementAssemblyType</i> for slab framing), then it must equal the bounding extent of the parts according to the layer set direction - if parts do not have representations, then such thickness is calculated according to the material layers or profiles.</li>
</ul>

<table border="0" cellpadding="2" cellspacing="2" summary="voiding">
<tr><td valign="top"><img src="../../../figures/ifcslabtype-floor.png" alt="voiding" border="0"></td></tr>
<tr><td><p class="figure">Figure 234 &mdash; Slab type</p></td></tr>
</table>]]></Body>
            </Definition>
          </Definitions>
          <Concepts>
            <Concept uuid="6c178501-b085-4d01-8ed7-1dd80f4db792" name="Material Layer Set" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The material of the <em>IfcSlabType</em> is defined by the
<em>IfcMaterialLayerSet</em> or as fall back by <em>IfcMaterial</em>
and attached by the
<em>IfcRelAssociatesMaterial</em><em>.RelatingMaterial</em>. It is
accessible by the inverse <em>HasAssociations</em> relationship.</p>
<blockquote class="note">NOTE&nbsp; It is illegal to assign an
<em>IfcMaterial</em> to an <em>IfcSlabType</em>, if there is at least
one occurrences. of <em>IfcSlabStandardCase</em> for this
type.</blockquote>

<p>The shared material layer set definition is defined by assigning
an <em>IfcMaterialLayerSet</em> (see material use definition above).
The <em>IfcMaterialLayer</em> refers to one or several of
<em>IfcMaterial</em> that is the common for all slab occurrence, if
used. It is only applicable if the <em>IfcSlabType</em> has only
occurrences of type <em>IfcSlabStandardCase</em> (see definition of
<em>IfcSlabStandardCase</em> for further information).</p>
<blockquote class="note">NOTE&nbsp; Since each individual instance of
<em>IfcSlabStandardCase</em> defines its own
<em>IfcMaterialLayerSetUsage</em> including the offset from the
reference plane, the same <em>IfcSlabType</em> can be used
independently of the reference plane alignment of its
occurrences.</blockquote>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="dfb5b3a9-50e3-46e2-8518-1f03e7cfd886" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="54f6fcb9-fbe4-4587-8c2b-96d04ecb17e2" name="IfcTypeObject" status="sample" applicableRootEntity="IfcTypeObject">
          <Concepts>
            <Concept uuid="c14dae11-8132-48ae-ae57-ad0fbd6521b2" name="Library Association" status="sample" override="false">
              <Template ref="3d761f09-23a2-4c01-8bc5-8762aa92bc23" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="4afa6a0a-fb68-4761-8d26-06b63d90a21b" name="IfcWall" status="sample" applicableRootEntity="IfcWall">
          <Concepts>
            <Concept uuid="3e9489c5-4072-40d7-aa68-940455be2576" name="Axis 2D Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[
<blockquote class="note">NOTE&nbsp; The 'Axis' is not used to locate the 
material layer set, only the subtype <em>IfcWallStandardCase</em>
provides this capability.</blockquote>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="782444e8-d681-475a-9034-a9e7f53c6d65" />
              <TemplateRules operator="and">
                <TemplateRule Description="The wall axis of the wall." Parameters="Identifier[Value]='Axis' AND Type[Value]='Curve2D' AND Items[Type]='IfcBoundedCurve'" />
              </TemplateRules>
            </Concept>
            <Concept uuid="69ecde9e-2199-4690-94b7-eedc1e88a758" name="Path Connectivity" status="sample" override="false">
              <Template ref="50170395-87c6-492e-a6fc-9f5f840b114f" />
              <TemplateRules operator="and">
                <TemplateRule Description="Walls with equal or lower priority are connected at RelatedElement." Parameters="RelatedElement[Type]='IfcWall'" />
              </TemplateRules>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="9a40b1f8-c468-4e17-80fd-c3f28f3c66ed" name="IfcWallElementedCase" status="sample" applicableRootEntity="IfcWallElementedCase">
          <Definitions>
            <Definition>
              <Body><![CDATA[]]></Body>
            </Definition>
          </Definitions>
          <Concepts>
            <Concept uuid="b049741f-7515-461c-aecb-09438a854734" name="Material Layer Set Usage" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>Similar to standard walls (<i>IfcWallStandardCase</i>), elemented walls are defined parametrically with <i>IfcMaterialLayerSetUsage</i>, but go into further detail, where each material layer corresponds to an aggregated part of a particular type, where such parts may be further decomposed and/or use parametric material definitions.
</p>]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6d5fb86f-3f2d-49fb-9528-077855ddcc47" />
            </Concept>
            <Concept uuid="2ae73f28-4064-4b13-acf1-78bac1b3827c" name="Axis 2D Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The wall axis is represented by a two-dimensional open curve 
within a particular shape representation. The wall axis is used to 
apply the material layer set usage parameter to the wall geometry.
</p>
<ul>

 <li><em>Axis</em>
  <ul>
   <li><em>IfcPolyline</em> having two <em>Points</em>, or 
<em>IfcTrimmedCurve</em> with <em>BasisCurve</em> of Type
<em>IfcLine</em> for the 'SweptSolid' provided as 
<em>IfcExtrudedAreaSolid</em>. The axis curve lies on the x/y plane and is parallel to the x-axis of
 the object coordinate system.</li>

   <li><em>IfcTrimmedCurve</em> with <em>BasisCurve</em> of Type
<em>IfcCircle</em> for 'SweptSolid' provided as
 <em>IfcExtrudedAreaSolid</em>. The axis curve lies on the x/y plane
 of the object coordinate system, the tangent at the start is along 
the positive x-axis.</li>

  </ul>
 </li>
</ul>
<p>&nbsp;</p>

<table cellpadding="2" cellspacing="2">

 <tr>

  <td align="left" valign="top"><img src="../../../figures/ifcwallstandard_straigthwall_01-layout1.gif" alt="straight wall axis" border="0" height="299" width="393"></td>

  <td><blockquote class="example">EXAMPLE&nbsp; Figure 230 illustrates an axis representation for a straight wall. In case of a straight wall, the set of items shall
include a single geometric representation item of type <em>IfcPolyline</em> or <em>IfcTrimmedCurve</em> with the <em>BasisCurve</em> being an <em>IfcLine</em>. The <em>IfcPolyline</em> or <em>IfcTrimmedCurve</em> shall be parallel (here in a special case co-linear) to the x-axis
of the object coordinate system. The direction shall be identical to the direction of the x-axis.</blockquote>

 </td>
 </tr>
 <tr>
  <td width="393"><p class="figure">Figure 230 &mdash; Wall axis straight</p></td>

  <td>&nbsp;</td>
 </tr>
</table>
<table cellpadding="2" cellspacing="2">

 <tr>

  <td align="left" valign="top"><img src="../../../figures/ifcwallstandard_curvedwall_01-layout1.gif" alt="curved wall axis" border="0" height="299" width="393"></td>


  <td><blockquote class="example">EXAMPLE&nbsp; Figure 231 illustrates an axis representation for a curved wall. In case of a curved wall, the set of items shall include
a single geometric representation item of type <em>IfcTrimmedCurve</em>. The curve shall have a <em>BasisCurve</em> of type <em>IfcCircle</em>. The tangent of the <em>IfcTrimmedCurve</em> shall be parallel at start to the x-axis of the object coordinate system. The direction shall be identical to the direction of the x-axis.</blockquote>
 </tr>
 
<tr>
  <td width="393"><p class="figure">Figure 231 &mdash; Wall axis curved</p></td>
  <td>&nbsp;</td>
 
</tr>

</table>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="782444e8-d681-475a-9034-a9e7f53c6d65" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="19b05017-1956-41ff-b642-02708e044a67" name="IfcWallStandardCase" status="sample" applicableRootEntity="IfcWallStandardCase">
          <Definitions>
            <Definition>
              <Body><![CDATA[]]></Body>
            </Definition>
          </Definitions>
          <Concepts>
            <Concept uuid="6874146b-e77b-426f-89c1-e88d9dbc9dd0" name="Material Layer Set Usage" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>
Multi-layer walls can be represented by refering to several
<em>IfcMaterialLayer</em>'s within the <em>IfcMaterialLayerSet</em>
that is referenced from the
<em>IfcMaterialLayerSetUsage</em>.&nbsp;</p>


<p>Material information can also be given at the
<em>IfcWallType</em>, defining the common attribute data for all
occurrences of the same type. It is then accessible by the
inverse <em>IsDefinedBy</em> relationship pointing to
<em>IfcSlabType.HasAssociations</em> and via
<em>IfcRelAssociatesMaterial.RelatingMaterial</em>.</p> <p>The <em>IfcWallType</em> should then have a unique
 <em>IfcMaterialLayerSet</em>, that is referenced by 
the <em>IfcMaterialLayerSetUsage</em> assigned to all
occurrences of this <em>IfcWallType</em>.</p>


<p>&nbsp;</p>




<table>
 
<tr>
  <td><img src="../../../figures/ifcwallstandardcase_materialusage-01.png" alt="Material layer set and usage" height="220" width="501"></td>
  <td><blockquote class="example">EXAMPLE&nbsp; Figure 232 illustrates assignment of <em>IfcMaterialLayerSetUsage</em> and <em>IfcMaterialLayerSet</em> to the wall type and the wall occurrence.</blockquote></td>
 </tr>

 <tr>
  <td><p class="figure">Figure 232 &mdash; Wall Standard Object Typing</p></td>
  <td>&nbsp;</td>
 </tr>

</table>





<p>Figure 233 illustrates material layer usage, where the following conventions shall be met:</p>
<ul>
<li>The reference coordinate system is the local coordinate system established by the <em>ObjectPlacement</em> of the <em>IfcWallStandardCase</em>.</li>
<li>The reference axis is the axis defined by the <em>IfcShapeRepresentation</em> with <em>RepresentationType</em>='Axis' as one of the
<em>Representation.Representations</em> of the <em>IfcWallStandardCase</em>.</li>
<li>The <em>IfcMaterialLayerSetUsage.OffsetFromReferenceLine</em> is given as a distance from this axis.</li>
<li>The <em>IfcMaterialLayerSetUsage.OffsetFromReferenceLine</em> is the distance parallel to the reference axis and always within the base
(XY) plane of the reference coordinate system. A positve value of <em>IfcMaterialLayerSetUsage.OffsetFromReferenceLine</em> would
then point into the positive y-axis of the reference coordinate system.</li>
<li>The <em>IfcMaterialLayerSetUsage.DirectionSense</em> defines how the <em>IfcMaterialLayer</em>'s are assigned to the reference axis. POSITIVE means in direction to the positive y-axis of the reference coordinate system.</li>
<li>The <em>Thickness</em> of each <em>IfcMaterialLayer</em> is provided starting from the <em>OffsetFromReferenceLine</em> and in the direction given by <em>DirectionSense</em>. It is applied without any gap or overlap between two consecutive layers. The <em>TotalThickness</em> of the <em>IfcMaterialLayerSet</em> is the sum of all layer thicknesses.</li>
<li>The <em>IfcMaterialLayerSetUsage.LayerSetDirection</em> is always AXIS2.</li>
</ul>

<table border="0" cellpadding="2" cellspacing="2" summary="material use definition for wall slabs">
<tr><td align="left" valign="top" width="610"><img src="../../../figures/ifcmateriallayersetusage_wall-01.png" alt="roof slab material layer set" width="601" height="351" border="0"></td></tr>
<tr><td><p class="figure">Figure 233 &mdash; Wall material layers</p></td></tr>
</table>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="6d5fb86f-3f2d-49fb-9528-077855ddcc47" />
              <Requirements>
                <Requirement applicability="export" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
            <Concept uuid="0be1a27c-e4b0-46b4-ab5e-d354f213507b" name="Axis 2D Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The wall axis is represented by a two-dimensional open curve 
within a particular shape representation. The wall axis is used to 
apply the material layer set usage parameter to the wall geometry.
</p>
<ul>

 <li><em>Axis</em>
  <ul>
   <li><em>IfcPolyline</em> having two <em>Points</em>, or 
<em>IfcTrimmedCurve</em> with <em>BasisCurve</em> of Type
<em>IfcLine</em> for the 'SweptSolid' provided as 
<em>IfcExtrudedAreaSolid</em>. The axis curve lies on the x/y plane and is parallel to the x-axis of
 the object coordinate system.</li>

   <li><em>IfcTrimmedCurve</em> with <em>BasisCurve</em> of Type
<em>IfcCircle</em> for 'SweptSolid' provided as
 <em>IfcExtrudedAreaSolid</em>. The axis curve lies on the x/y plane
 of the object coordinate system, the tangent at the start is along 
the positive x-axis.</li>

  </ul>
 </li>
</ul>
<p>&nbsp;</p>

<table cellpadding="2" cellspacing="2">

 <tr>

  <td align="left" valign="top"><img src="../../../figures/ifcwallstandard_straigthwall_01-layout1.gif" alt="straight wall axis" border="0" height="299" width="393"></td>

  <td><blockquote class="example">EXAMPLE&nbsp; Figure 234 illustrates an axis representation for a straight wall. In case of a straight wall, the set of items shall
include a single geometric representation item of type <em>IfcPolyline</em> or <em>IfcTrimmedCurve</em> with the <em>BasisCurve</em> being an <em>IfcLine</em>. The <em>IfcPolyline</em> or <em>IfcTrimmedCurve</em> shall be parallel (here in a special case co-linear) to the x-axis
of the object coordinate system. The direction shall be identical to the direction of the x-axis.</blockquote>

 </td>
 </tr>
 <tr>
  <td width="393"><p class="figure">Figure 234 &mdash; Wall axis straight</p></td>

  <td>&nbsp;</td>
 </tr>
</table>
<table cellpadding="2" cellspacing="2">

 <tr>

  <td align="left" valign="top"><img src="../../../figures/ifcwallstandard_curvedwall_01-layout1.gif" alt="curved wall axis" border="0" height="299" width="393"></td>


  <td><blockquote class="example">EXAMPLE&nbsp; Figure 235 illustrates an axis representation for a curved wall. In case of a curved wall, the set of items shall include
a single geometric representation item of type <em>IfcTrimmedCurve</em>. The curve shall have a <em>BasisCurve</em> of type <em>IfcCircle</em>. The tangent of the <em>IfcTrimmedCurve</em> shall be parallel at start to the x-axis of the object coordinate system. The direction shall be identical to the direction of the x-axis.</blockquote>
 </tr>
 
<tr>
  <td width="393"><p class="figure">Figure 235 &mdash; Wall axis curved</p></td>
  <td>&nbsp;</td>
 
</tr>

</table>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="782444e8-d681-475a-9034-a9e7f53c6d65" />
            </Concept>
            <Concept uuid="012a3a32-8cff-4cf2-a2f5-2cb0f3553b69" name="Body SweptSolid Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following additional constraints apply to the 'SweptSolid'
representation:</p>
<ul>
<li><u>Solid</u>: <em>IfcExtrudedAreaSolid</em> is required,</li>
<li><u>Profile</u>: <em>IfcArbitraryClosedProfileDef</em> and
<em>IfcRectangleProfileDef</em> shall be supported.</li>
<li><u>Extrusion</u>: The profile shall be extruded vertically,
i.e., in the direction of the z-axis of the co-ordinate system of
the referred spatial structure element. It might be further
constraint to be in the direction of the global z-axis in
implementers agreements. The extrusion axis shall be perpendicular
to the swept profile, i.e. pointing into the direction of the
z-axis of the Position of the <em>IfcExtrudedAreaSolid</em>.</li>
</ul>

<p>The profile of a wall is described in the ground view and extruded vertically. The profile (also identical with the foot print of the wall) is defined by the <em>IfcArbitraryClosedProfileDef</em> (excluding its subtypes). The profile is given with all wall connections already resolved.</p>

<p>Figure 236 illustrates a body representation for a straight wall. In case of a straight wall, the two sides of the profile shall be parallel to the wall axis, that is, the wall has a single unchanged thickness.</p>

<p>Figure 237 illustrates a body representation for a curved wall. In case of a curved wall, the two sides of the profile shall be parallel (with defined offset) to the wall axis, that is, the wall has a single unchanged thickness.</p>

<table cellpadding="2" cellspacing="2">
<tr>
<td align="left" valign="top"><img src="../../../figures/ifcwallstandard_straigthwall_02-layout1.gif" alt="straight wall body" border="0" height="299" width="393"></td>
<td align="left" valign="top"><img src="../../../figures/ifcwallstandard_curvedwall_02-layout1.gif" alt="curved wall body" border="0" height="299" width="393"></td>
</tr>
<tr>
<td width="393"><p class="figure">Figure 236 &mdash; Wall body extrusion straight</p></td>
<td width="393"><p class="figure">Figure 237 &mdash; Wall body extrusion curved</p></td>
</tr>
</table>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="cb7c18fa-cf83-4db1-be1b-c013ba4ed672" />
              <TemplateRules operator="and">
                <TemplateRule Parameters="Identifier[Value]='Body' AND Type[Value]='SweptSolid'" />
              </TemplateRules>
            </Concept>
            <Concept uuid="284d4606-6b61-48d7-a5c3-533bdbe1c926" name="Body Clipping Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following constraints apply to the 'Clipping'
representation:</p>
<ul>
<li><u>Solid</u>: see standard geometric representation</li>
<li><u>Profile</u>: see standard geometric representation</li>
<li><u>Extrusion</u>: see standard geometric representation</li>
<li><u>Boolean result</u>: The <em>IfcBooleanClippingResult</em>
shall be supported, allowing for Boolean differences between the
swept solid (here <em>IfcExtrudedAreaSolid</em>) and one or several
<em>IfcHalfSpaceSolid</em> (or subtypes).</li>
</ul>

<p>Figure 238 illustrates a clipping for a straight wall using an <em>IfcPolygonalBoundedHalfSpace</em> as <em>SecondOperand</em> in
the <em>IfcBooleanClippingResult</em>.</p>

<p>Figure 239 illustrates a clipping for a curved wall using an <em>IfcHalfSpaceSolid</em> as <em>SecondOperand</em> in the
<em>IfcBooleanClippingResult</em>.</p>

<table cellpadding="2" cellspacing="2">
<tr>
<td><img src="../../../figures/ifcwallstandard_straigthwall_03-layout1.gif" alt="straight wall clipping" border="0" height="299" width="397"></td>
<td><img src="../../../figures/ifcwallstandard_curvedwall_03-layout1.gif" alt="curved wall clipping" border="0" height="300" width="400"></td>
</tr>
<tr>
<td width="397"><p class="figure">Figure 238 &mdash; Wall body clipping straight</p></td>
<td width="400"><p class="figure">Figure 239 &mdash; Wall body clipping curved</p></td>
</tr>
</table>
]]></Body>
                </Definition>
              </Definitions>
              <Template ref="2cdbc2f5-9b0c-43ea-9d2a-9d72d0147e00" />
            </Concept>
            <Concept uuid="d9fcd025-318b-410f-b131-9a8ce3393a6d" name="Body CSG Geometry" status="sample" override="false">
              <Template ref="a0ab7630-6965-495e-be8f-d106fd2599c2" />
            </Concept>
            <Concept uuid="9e1d04b6-aac0-4f21-9ca9-0fdf2343dff5" name="Mapped Geometry" status="sample" override="false">
              <Template ref="ecfdd7c8-71d5-449f-bf20-e63a25dcb9ba" />
            </Concept>
            <Concept uuid="7fb8d403-b77f-46f9-bf5c-eaae967baa73" name="Body SweptSolid PolyCurve Geometry" status="sample" override="false">
              <Template ref="38710ccd-8ff5-41ba-8fda-08300907a02e" />
            </Concept>
            <Concept uuid="cc4ef20e-c2e9-472b-9c0e-af85200879e9" name="Body Tessellation Geometry" status="sample" override="false">
              <Template ref="5cfd4403-6545-4c6d-bc27-0a95a3d09950" />
            </Concept>
            <Concept uuid="d45528e9-455d-4d4f-8e6c-e58915f3a467" name="Material Single" status="sample" override="false">
              <Template ref="5f39a814-44a0-4fb3-8dc6-ddaa0560fc54" />
            </Concept>
            <Concept uuid="d132987d-a9c8-4ee3-a3a6-bceb069d2c96" name="Body AdvancedBrep Geometry" status="sample" override="false">
              <Template ref="fc763575-50f1-4bc0-bbf2-382380152047" />
            </Concept>
            <Concept uuid="7b23283d-2c56-4262-b1ae-bc2823aee71d" name="Body Brep Geometry" status="sample" override="false">
              <Template ref="8fb923f5-b82d-48d2-ad29-d678ca473fda" />
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="ad096c5d-d9ab-40f6-b871-2f3c3a773ef5" name="IfcWallType" status="sample" applicableRootEntity="IfcWallType">
          <Definitions>
            <Definition>
              <Body><![CDATA[<p>Wall types may be described at several levels of detail to support the following wall occurrences:</p>
<ul>
<li><i>IfcWall</i>: Explicit geometry instantiated in exact form at occurrences.</li>
<li><i>IfcWallStandardCase</i>: Implicit material layers following path ('Axis' representation) defined at occurrences.</li>
<li><i>IfcWallElementedCase</i>: implicit material layers and corresponding aggregated parts filling each layer.</li>
</ul>

<p>As shown in Figure 234, each material layer may be elaborated into an element (where the Name matches exactly), and each element may be defined by its own type, which may be further elaborated by material layers and/or parts. The <i>LayerThickness</i> of <i>IfcMaterialLayer</i> must be derived from the corresponding element as follows:</p>
<ul>
<li>if element does not have a type, then the thickness must be regarded as 0 (supporting scenario where a particular configuration may have one side a wall unfinished)
<li>if element has a material layer set, then it must equal the total thickness of the element's material layer set</li>
<li>if element has a material profile set, then it must equal the total thickness of the element's material profile set</li>
<li>if element is decomposed into parts (such as <i>IfcElementAssemblyType</i> for wall framing), then it must equal the bounding extent of the parts according to the layer set direction - if parts do not have representations, then such thickness is calculated according to the material layers or profiles.</li>
</ul>

<table border="0" cellpadding="2" cellspacing="2" summary="voiding">
<tr><td valign="top"><img src="../../../figures/ifcwalltype-partitioning.png" alt="voiding" border="0"></td></tr>
<tr><td><p class="figure">Figure 234 &mdash; Wall type</p></td></tr>
</table>

]]></Body>
            </Definition>
          </Definitions>
          <Concepts>
            <Concept uuid="992ef032-ae4b-481b-bb61-8bda2db409a5" name="Material Layer Set" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The material of the <em>IfcWallType</em> is defined by the
<em>IfcMaterialLayerSet</em> or as fall back by <em>IfcMaterial</em>
and attached by the
<em>IfcRelAssociatesMaterial</em><em>.RelatingMaterial</em>. It is
accessible by the inverse <em>HasAssociations</em>
relationship.</p>
<blockquote class="note">NOTE&nbsp; It is illegal to assign an
<em>IfcMaterial</em> to an <em>IfcWallType</em>, if there is at least
one occurrence of <em>IfcWallStandardCase</em> for this type.</blockquote>

<p>The shared material layer set definition is defined by
assigning an <em>IfcMaterialLayerSet</em> (see material use
definition above). The <em>IfcMaterialLayer</em> refers to one or
several of <em>IfcMaterialLayer</em> that is the common for all
wall occurrence, if used. It is only applicable if the
<em>IfcWallType</em> has only occurrences of type
<em>IfcWallStandardCase</em> (see definition of
<em>IfcWallStandardCase</em> for further information).</p>
<blockquote class="note">NOTE&nbsp; Since each individual instance of
<em>IfcWallStandardCase</em> defines its own
<em>IfcMaterialLayerSetUsage</em> including the offset from the
wall axis, the same <em>IfcWallType</em> can be used independently
of the axis alignment of its occurrences.</blockquote>


<p>If a wall type is decomposed into parts, then material layers of the <i>IfcWallType</i> may be driven by corresponding material layers and profiles of components, where <i>IfcMaterialLayer</i>.Name refers to <i>IfcElement</i>.Name. The ordering of layers is preserved by the layer set, while the thicknesses of each layer are calculated according to the material layer/profile geometry of the parts.</p>

<p>The following is an example of a framed wall composition, where layers are ordered in the direction away from the viewer facing the right side of the wall:</p>

<table class="gridtable">
<tr><th>#</th><th>Layer/Element Name</th><th>Element Type</th><th>Description</th></tr>
<tr><td>1</td><td>Forward Panels</td><td><i>IfcPlate</i></td><td>Panels on right side of wall (looking in direction of axis) such as gypsum board or cement board.</td></tr>
<tr><td>2</td><td>Frame</td><td><i>IfcElementAssembly</i></td><td>Framing, which is decomposed into tracks, studs, and insulation. The thickness of the layer is determined according to the greatest extent by superimposing the material layers and profiles of all aggregated objects (in the absense of this <i>IfcElementAssembly</i> having its own <i>IfcMaterialLayerSet</i> defining sequential positioning of elements).<br/>

<table class="gridtable">
<tr><th>Element Name</th><th>Element Type</th><th>Material</th><th>Description</th></tr>
<tr><td>Track</td><td><i>IfcMemberStandardCase</i></td><td><i>IfcMaterialProfileSetUsage</i></td><td>Track at base and top of frame.</td></tr>
<tr><td>Stud</td><td><i>IfcMemberStandardCase</i></td><td><i>IfcMaterialProfileSetUsage</i></td><td>Studs, where <i>IfcMaterialProfileSetUsage</i>.ReferenceExtent defines the maximum height and <i>IfcMaterialProfileWithOffsets</i>.Offsets defines the stud spacing.</td></tr>
<tr><td>Insulation</td><td><i>IfcBuildingElementPart</i></td><td><i>IfcMaterialLayerSet</i></td><td>Insulation.</td></tr>
</table>

</td></tr>
<tr><td>3</td><td>Reverse Panels</td><td><i>IfcPlate</i></td><td>Panels on left side of wall (looking in direction of axis) such as gypsum board or cement board.</td></tr>
</table>






]]></Body>
                </Definition>
              </Definitions>
              <Template ref="dfb5b3a9-50e3-46e2-8518-1f03e7cfd886" />
              <Requirements>
                <Requirement applicability="export" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="recommended" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
        <ConceptRoot uuid="4ec3a63a-be26-479e-a7bc-f5feb1beca61" name="IfcWindowStandardCase" status="sample" applicableRootEntity="IfcWindowStandardCase">
          <Concepts>
            <Concept uuid="6359e739-90d9-4845-b5bd-f8eb3f884dd2" name="Profile Geometry" status="sample" override="false">
              <Definitions>
                <Definition>
                  <Body><![CDATA[<p>The following additional constraints apply to the 'Profile'
representation type:</p>
<ul>
<li><u>Curve</u>: being an <em>IfcPolyline</em> defining a
rectangle.</li>
<li><u>Position</u>: The curve shall lie in the xz plane of the
object placement coordinate (the y coordinate values of the
<em>IfcCartesianPoint</em>'s shall be 0.).</li>
</ul>
<p>As shown in Figure 242, the profile defines the outer boundary to which the window
lining parameters relate as:</p>
<ul>
<li><em>IfcWindowLiningProperties.LiningDepth</em> starting at
distance defined by <em>LiningOffset</em> going into the positive y
direction.</li>
<li><em>IfcWindowLiningProperties.LiningThickness</em> offset into
the inner side of the rectangle.</li>
<li><em>IfcWindowLiningProperties.LiningOffset</em> distance along
the positive y direction to where the <em>LiningDepth</em>
applies.</li>
<li><em>IfcWindowLiningProperties.FirstTransomOffset</em> starting
at the bottom edge of the rectangle (along local x axis) into the
inner side of the rectangle, distance provided as percentage of
overall height. Distance to the centre line of the transom.
<em>SecondTransomOffset</em> defined accordingly.</li>
<li><em>IfcWindowLiningProperties.FirstMullionOffset</em> starting
at the left edge of the rectangle (along local z-axis) into the
inner side of the rectangle, distance provided as percentage of
overall width. Distance to the centre line of the mullion.
<em>SecondMullionOffset</em> defined accordingly.</li>
</ul>

<table>
<tr><td><img src="../../../figures/ifcwindowstandardcase-01.png" alt=
"standard window" border="0"></td></tr>
<tr><td><p class="figure">Figure 242 &mdash; Window profile</p></td></tr>
</table>

]]></Body>
                </Definition>
              </Definitions>
              <Template ref="f16eb3be-ff88-4f33-97df-d55aed3a0f95" />
              <Requirements>
                <Requirement applicability="export" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
                <Requirement applicability="import" requirement="mandatory" exchangeRequirement="c498680d-cc8b-4032-a9f3-cc6b2f096f42" />
              </Requirements>
            </Concept>
          </Concepts>
        </ConceptRoot>
      </Roots>
    </ModelView>
  </Views>
</mvdXML>