<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/IFC4/final" targetNamespace="http://www.buildingsmart-tech.org/ifcXML/IFC4/final" elementFormDefault="qualified" attributeFormDefault="unqualified" >
<!-- created with IFCDOC 5.0 at buildingsmart-tech.org -->
<!-- root element declaration (for SCHEMA definitions) -->
<xs:element name="uos" type="ifc:uos" abstract="true"/>
<xs:complexType name="uos" abstract="true">
<xs:sequence>
<xs:element name="header" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="time_stamp" type="xs:dateTime" minOccurs="0"/>
<xs:element name="author" type="xs:string" minOccurs="0"/>
<xs:element name="organization" type="xs:string" minOccurs="0"/>
<xs:element name="preprocessor_version" type="xs:string" minOccurs="0"/>
<xs:element name="originating_system" type="xs:string" minOccurs="0"/>
<xs:element name="authorization" type="xs:string" minOccurs="0"/>
<xs:element name="documentation" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="express" type="ifc:Seq-anyURI" use="optional"/>
<xs:attribute name="configuration" type="ifc:Seq-anyURI" use="optional"/>
</xs:complexType>
<xs:element name="ifcXML" type="ifc:ifcXML" substitutionGroup="ifc:uos"/>
<xs:complexType name="ifcXML">
<xs:complexContent>
<xs:extension base="ifc:uos">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ifc:Entity"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- element and complex type declarations (for ENTITY definitions) -->
<xs:element name="IfcActuator" type="ifc:IfcActuator" substitutionGroup="ifc:IfcDistributionControlElement" nillable="true"/>
<xs:complexType name="IfcActuator">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcActuatorType" type="ifc:IfcActuatorType" substitutionGroup="ifc:IfcDistributionControlElementType" nillable="true"/>
<xs:complexType name="IfcActuatorType">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElementType">
<xs:attribute name="PredefinedType" type="ifc:IfcActuatorTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcAlarm" type="ifc:IfcAlarm" substitutionGroup="ifc:IfcDistributionControlElement" nillable="true"/>
<xs:complexType name="IfcAlarm">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcAlarmType" type="ifc:IfcAlarmType" substitutionGroup="ifc:IfcDistributionControlElementType" nillable="true"/>
<xs:complexType name="IfcAlarmType">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElementType">
<xs:attribute name="PredefinedType" type="ifc:IfcAlarmTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcApplication" type="ifc:IfcApplication" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcApplication">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:sequence>
<xs:element name="ApplicationDeveloper" type="ifc:IfcOrganization" nillable="true"/>
</xs:sequence>
<xs:attribute name="Version" type="ifc:IfcLabel" use="optional"/>
<xs:attribute name="ApplicationFullName" type="ifc:IfcLabel" use="optional"/>
<xs:attribute name="ApplicationIdentifier" type="ifc:IfcIdentifier" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcApproval" type="ifc:IfcApproval" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcApproval">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcAxis2Placement3D" type="ifc:IfcAxis2Placement3D" substitutionGroup="ifc:IfcPlacement" nillable="true"/>
<xs:complexType name="IfcAxis2Placement3D">
<xs:complexContent>
<xs:extension base="ifc:IfcPlacement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcBuilding" type="ifc:IfcBuilding" substitutionGroup="ifc:IfcSpatialStructureElement" nillable="true"/>
<xs:complexType name="IfcBuilding">
<xs:complexContent>
<xs:extension base="ifc:IfcSpatialStructureElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcBuildingStorey" type="ifc:IfcBuildingStorey" substitutionGroup="ifc:IfcSpatialStructureElement" nillable="true"/>
<xs:complexType name="IfcBuildingStorey">
<xs:complexContent>
<xs:extension base="ifc:IfcSpatialStructureElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcCableSegment" type="ifc:IfcCableSegment" substitutionGroup="ifc:IfcFlowSegment" nillable="true"/>
<xs:complexType name="IfcCableSegment">
<xs:complexContent>
<xs:extension base="ifc:IfcFlowSegment"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcCableSegmentType" type="ifc:IfcCableSegmentType" substitutionGroup="ifc:IfcFlowSegmentType" nillable="true"/>
<xs:complexType name="IfcCableSegmentType">
<xs:complexContent>
<xs:extension base="ifc:IfcFlowSegmentType">
<xs:attribute name="PredefinedType" type="ifc:IfcCableSegmentTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcCartesianPoint" type="ifc:IfcCartesianPoint" substitutionGroup="ifc:IfcPoint" nillable="true"/>
<xs:complexType name="IfcCartesianPoint">
<xs:complexContent>
<xs:extension base="ifc:IfcPoint">
<xs:attribute name="Coordinates" use="optional">
<xs:simpleType>
<xs:restriction>
<xs:simpleType>
<xs:list itemType="ifc:IfcLengthMeasure"/>
</xs:simpleType>
<xs:maxLength value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcClassification" type="ifc:IfcClassification" substitutionGroup="ifc:IfcExternalInformation" nillable="true"/>
<xs:complexType name="IfcClassification">
<xs:complexContent>
<xs:extension base="ifc:IfcExternalInformation">
<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcClassificationReference" type="ifc:IfcClassificationReference" substitutionGroup="ifc:IfcExternalReference" nillable="true"/>
<xs:complexType name="IfcClassificationReference">
<xs:complexContent>
<xs:extension base="ifc:IfcExternalReference"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcCommunicationsAppliance" type="ifc:IfcCommunicationsAppliance" substitutionGroup="ifc:IfcFlowTerminal" nillable="true"/>
<xs:complexType name="IfcCommunicationsAppliance">
<xs:complexContent>
<xs:extension base="ifc:IfcFlowTerminal"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcCommunicationsApplianceType" type="ifc:IfcCommunicationsApplianceType" substitutionGroup="ifc:IfcFlowTerminalType" nillable="true"/>
<xs:complexType name="IfcCommunicationsApplianceType">
<xs:complexContent>
<xs:extension base="ifc:IfcFlowTerminalType">
<xs:attribute name="PredefinedType" type="ifc:IfcCommunicationsApplianceTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcComplexPropertyTemplate" type="ifc:IfcComplexPropertyTemplate" substitutionGroup="ifc:IfcPropertyTemplate" nillable="true"/>
<xs:complexType name="IfcComplexPropertyTemplate">
<xs:complexContent>
<xs:extension base="ifc:IfcPropertyTemplate"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcConstraint" type="ifc:IfcConstraint" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcConstraint" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
<xs:attribute name="ConstraintGrade" type="ifc:IfcConstraintEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcContext" type="ifc:IfcContext" abstract="true" substitutionGroup="ifc:IfcObjectDefinition" nillable="true"/>
<xs:complexType name="IfcContext" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcObjectDefinition"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcContextDependentUnit" type="ifc:IfcContextDependentUnit" substitutionGroup="ifc:IfcNamedUnit" nillable="true"/>
<xs:complexType name="IfcContextDependentUnit">
<xs:complexContent>
<xs:extension base="ifc:IfcNamedUnit">
<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcControl" type="ifc:IfcControl" abstract="true" substitutionGroup="ifc:IfcObject" nillable="true"/>
<xs:complexType name="IfcControl" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcObject"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcController" type="ifc:IfcController" substitutionGroup="ifc:IfcDistributionControlElement" nillable="true"/>
<xs:complexType name="IfcController">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcControllerType" type="ifc:IfcControllerType" substitutionGroup="ifc:IfcDistributionControlElementType" nillable="true"/>
<xs:complexType name="IfcControllerType">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElementType">
<xs:attribute name="PredefinedType" type="ifc:IfcControllerTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcConversionBasedUnit" type="ifc:IfcConversionBasedUnit" substitutionGroup="ifc:IfcNamedUnit" nillable="true"/>
<xs:complexType name="IfcConversionBasedUnit">
<xs:complexContent>
<xs:extension base="ifc:IfcNamedUnit">
<xs:sequence>
<xs:element name="ConversionFactor" type="ifc:IfcMeasureWithUnit" nillable="true"/>
</xs:sequence>
<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcConversionBasedUnitWithOffset" type="ifc:IfcConversionBasedUnitWithOffset" substitutionGroup="ifc:IfcConversionBasedUnit" nillable="true"/>
<xs:complexType name="IfcConversionBasedUnitWithOffset">
<xs:complexContent>
<xs:extension base="ifc:IfcConversionBasedUnit">
<xs:attribute name="ConversionOffset" type="ifc:IfcReal" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcDimensionalExponents" type="ifc:IfcDimensionalExponents" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcDimensionalExponents">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcDirection" type="ifc:IfcDirection" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
<xs:complexType name="IfcDirection">
<xs:complexContent>
<xs:extension base="ifc:IfcGeometricRepresentationItem"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcDistributionControlElement" type="ifc:IfcDistributionControlElement" substitutionGroup="ifc:IfcDistributionElement" nillable="true"/>
<xs:complexType name="IfcDistributionControlElement">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcDistributionControlElementType" type="ifc:IfcDistributionControlElementType" abstract="true" substitutionGroup="ifc:IfcDistributionElementType" nillable="true"/>
<xs:complexType name="IfcDistributionControlElementType" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionElementType"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcDistributionElement" type="ifc:IfcDistributionElement" substitutionGroup="ifc:IfcElement" nillable="true"/>
<xs:complexType name="IfcDistributionElement">
<xs:complexContent>
<xs:extension base="ifc:IfcElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcDistributionElementType" type="ifc:IfcDistributionElementType" substitutionGroup="ifc:IfcElementType" nillable="true"/>
<xs:complexType name="IfcDistributionElementType">
<xs:complexContent>
<xs:extension base="ifc:IfcElementType"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcDistributionFlowElement" type="ifc:IfcDistributionFlowElement" substitutionGroup="ifc:IfcDistributionElement" nillable="true"/>
<xs:complexType name="IfcDistributionFlowElement">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcDistributionFlowElementType" type="ifc:IfcDistributionFlowElementType" abstract="true" substitutionGroup="ifc:IfcDistributionElementType" nillable="true"/>
<xs:complexType name="IfcDistributionFlowElementType" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionElementType"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcDistributionPort" type="ifc:IfcDistributionPort" substitutionGroup="ifc:IfcPort" nillable="true"/>
<xs:complexType name="IfcDistributionPort">
<xs:complexContent>
<xs:extension base="ifc:IfcPort"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcDistributionSystem" type="ifc:IfcDistributionSystem" substitutionGroup="ifc:IfcSystem" nillable="true"/>
<xs:complexType name="IfcDistributionSystem">
<xs:complexContent>
<xs:extension base="ifc:IfcSystem"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcElement" type="ifc:IfcElement" abstract="true" substitutionGroup="ifc:IfcProduct" nillable="true"/>
<xs:complexType name="IfcElement" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcProduct"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcElementType" type="ifc:IfcElementType" abstract="true" substitutionGroup="ifc:IfcTypeProduct" nillable="true"/>
<xs:complexType name="IfcElementType" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcTypeProduct"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcEvent" type="ifc:IfcEvent" substitutionGroup="ifc:IfcProcess" nillable="true"/>
<xs:complexType name="IfcEvent">
<xs:complexContent>
<xs:extension base="ifc:IfcProcess"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcEventTime" type="ifc:IfcEventTime" substitutionGroup="ifc:IfcSchedulingTime" nillable="true"/>
<xs:complexType name="IfcEventTime">
<xs:complexContent>
<xs:extension base="ifc:IfcSchedulingTime"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcEventType" type="ifc:IfcEventType" substitutionGroup="ifc:IfcTypeProcess" nillable="true"/>
<xs:complexType name="IfcEventType">
<xs:complexContent>
<xs:extension base="ifc:IfcTypeProcess">
<xs:attribute name="PredefinedType" type="ifc:IfcEventTypeEnum" use="optional"/>
<xs:attribute name="EventTriggerType" type="ifc:IfcEventTriggerTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcExternalInformation" type="ifc:IfcExternalInformation" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcExternalInformation" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcExternalReference" type="ifc:IfcExternalReference" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcExternalReference" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcFlowController" type="ifc:IfcFlowController" substitutionGroup="ifc:IfcDistributionFlowElement" nillable="true"/>
<xs:complexType name="IfcFlowController">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionFlowElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcFlowControllerType" type="ifc:IfcFlowControllerType" abstract="true" substitutionGroup="ifc:IfcDistributionFlowElementType" nillable="true"/>
<xs:complexType name="IfcFlowControllerType" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionFlowElementType"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcFlowInstrument" type="ifc:IfcFlowInstrument" substitutionGroup="ifc:IfcDistributionControlElement" nillable="true"/>
<xs:complexType name="IfcFlowInstrument">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcFlowInstrumentType" type="ifc:IfcFlowInstrumentType" substitutionGroup="ifc:IfcDistributionControlElementType" nillable="true"/>
<xs:complexType name="IfcFlowInstrumentType">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElementType">
<xs:attribute name="PredefinedType" type="ifc:IfcFlowInstrumentTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcFlowSegment" type="ifc:IfcFlowSegment" substitutionGroup="ifc:IfcDistributionFlowElement" nillable="true"/>
<xs:complexType name="IfcFlowSegment">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionFlowElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcFlowSegmentType" type="ifc:IfcFlowSegmentType" abstract="true" substitutionGroup="ifc:IfcDistributionFlowElementType" nillable="true"/>
<xs:complexType name="IfcFlowSegmentType" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionFlowElementType"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcFlowTerminal" type="ifc:IfcFlowTerminal" substitutionGroup="ifc:IfcDistributionFlowElement" nillable="true"/>
<xs:complexType name="IfcFlowTerminal">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionFlowElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcFlowTerminalType" type="ifc:IfcFlowTerminalType" abstract="true" substitutionGroup="ifc:IfcDistributionFlowElementType" nillable="true"/>
<xs:complexType name="IfcFlowTerminalType" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionFlowElementType"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcGeometricRepresentationItem" type="ifc:IfcGeometricRepresentationItem" abstract="true" substitutionGroup="ifc:IfcRepresentationItem" nillable="true"/>
<xs:complexType name="IfcGeometricRepresentationItem" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcRepresentationItem"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcGroup" type="ifc:IfcGroup" substitutionGroup="ifc:IfcObject" nillable="true"/>
<xs:complexType name="IfcGroup">
<xs:complexContent>
<xs:extension base="ifc:IfcObject"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcIrregularTimeSeries" type="ifc:IfcIrregularTimeSeries" substitutionGroup="ifc:IfcTimeSeries" nillable="true"/>
<xs:complexType name="IfcIrregularTimeSeries">
<xs:complexContent>
<xs:extension base="ifc:IfcTimeSeries">
<xs:sequence>
<xs:element name="Values">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcIrregularTimeSeriesValue" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcIrregularTimeSeriesValue"/>
<xs:attribute ref="ifc:cType" fixed="list"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcIrregularTimeSeriesValue" type="ifc:IfcIrregularTimeSeriesValue" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcIrregularTimeSeriesValue">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:sequence>
<xs:element name="ListValues">
<xs:complexType>
<xs:group ref="ifc:IfcValue" maxOccurs="unbounded"/>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcValue"/>
<xs:attribute ref="ifc:cType" fixed="list"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="TimeStamp" type="ifc:IfcDateTime" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcLibraryInformation" type="ifc:IfcLibraryInformation" substitutionGroup="ifc:IfcExternalInformation" nillable="true"/>
<xs:complexType name="IfcLibraryInformation">
<xs:complexContent>
<xs:extension base="ifc:IfcExternalInformation">
<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcLocalPlacement" type="ifc:IfcLocalPlacement" substitutionGroup="ifc:IfcObjectPlacement" nillable="true"/>
<xs:complexType name="IfcLocalPlacement">
<xs:complexContent>
<xs:extension base="ifc:IfcObjectPlacement">
<xs:sequence>
<xs:element name="RelativePlacement">
<xs:complexType>
<xs:group ref="ifc:IfcAxis2Placement"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcMaterial" type="ifc:IfcMaterial" substitutionGroup="ifc:IfcMaterialDefinition" nillable="true"/>
<xs:complexType name="IfcMaterial">
<xs:complexContent>
<xs:extension base="ifc:IfcMaterialDefinition">
<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcMaterialDefinition" type="ifc:IfcMaterialDefinition" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcMaterialDefinition" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcMaterialProfile" type="ifc:IfcMaterialProfile" substitutionGroup="ifc:IfcMaterialDefinition" nillable="true"/>
<xs:complexType name="IfcMaterialProfile">
<xs:complexContent>
<xs:extension base="ifc:IfcMaterialDefinition">
<xs:sequence>
<xs:element name="Profile" type="ifc:IfcProfileDef" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcMaterialProfileSet" type="ifc:IfcMaterialProfileSet" substitutionGroup="ifc:IfcMaterialDefinition" nillable="true"/>
<xs:complexType name="IfcMaterialProfileSet">
<xs:complexContent>
<xs:extension base="ifc:IfcMaterialDefinition">
<xs:sequence>
<xs:element name="MaterialProfiles">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcMaterialProfile" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcMaterialProfile"/>
<xs:attribute ref="ifc:cType" fixed="list"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcMaterialProfileSetUsage" type="ifc:IfcMaterialProfileSetUsage" substitutionGroup="ifc:IfcMaterialUsageDefinition" nillable="true"/>
<xs:complexType name="IfcMaterialProfileSetUsage">
<xs:complexContent>
<xs:extension base="ifc:IfcMaterialUsageDefinition">
<xs:sequence>
<xs:element name="ForProfileSet" type="ifc:IfcMaterialProfileSet" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcMaterialUsageDefinition" type="ifc:IfcMaterialUsageDefinition" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcMaterialUsageDefinition" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcMeasureWithUnit" type="ifc:IfcMeasureWithUnit" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcMeasureWithUnit">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:sequence>
<xs:element name="ValueComponent">
<xs:complexType>
<xs:group ref="ifc:IfcValue"/>
</xs:complexType>
</xs:element>
<xs:element name="UnitComponent">
<xs:complexType>
<xs:group ref="ifc:IfcUnit"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcMetric" type="ifc:IfcMetric" substitutionGroup="ifc:IfcConstraint" nillable="true"/>
<xs:complexType name="IfcMetric">
<xs:complexContent>
<xs:extension base="ifc:IfcConstraint">
<xs:sequence>
<xs:element name="DataValue">
<xs:complexType>
<xs:group ref="ifc:IfcMetricValueSelect"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Benchmark" type="ifc:IfcBenchmarkEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcNamedUnit" type="ifc:IfcNamedUnit" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcNamedUnit" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:sequence>
<xs:element name="Dimensions" type="ifc:IfcDimensionalExponents" nillable="true" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="UnitType" type="ifc:IfcUnitEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcObject" type="ifc:IfcObject" abstract="true" substitutionGroup="ifc:IfcObjectDefinition" nillable="true"/>
<xs:complexType name="IfcObject" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcObjectDefinition"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcObjectDefinition" type="ifc:IfcObjectDefinition" abstract="true" substitutionGroup="ifc:IfcRoot" nillable="true"/>
<xs:complexType name="IfcObjectDefinition" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcRoot"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcObjectPlacement" type="ifc:IfcObjectPlacement" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcObjectPlacement" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcObjective" type="ifc:IfcObjective" substitutionGroup="ifc:IfcConstraint" nillable="true"/>
<xs:complexType name="IfcObjective">
<xs:complexContent>
<xs:extension base="ifc:IfcConstraint">
<xs:attribute name="ObjectiveQualifier" type="ifc:IfcObjectiveEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcOrganization" type="ifc:IfcOrganization" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcOrganization">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcOwnerHistory" type="ifc:IfcOwnerHistory" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcOwnerHistory">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:sequence>
<xs:element name="OwningUser" type="ifc:IfcPersonAndOrganization" nillable="true"/>
<xs:element name="OwningApplication" type="ifc:IfcApplication" nillable="true"/>
</xs:sequence>
<xs:attribute name="CreationDate" type="ifc:IfcTimeStamp" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPerformanceHistory" type="ifc:IfcPerformanceHistory" substitutionGroup="ifc:IfcControl" nillable="true"/>
<xs:complexType name="IfcPerformanceHistory">
<xs:complexContent>
<xs:extension base="ifc:IfcControl">
<xs:attribute name="LifeCyclePhase" type="ifc:IfcLabel" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPerson" type="ifc:IfcPerson" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcPerson">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPersonAndOrganization" type="ifc:IfcPersonAndOrganization" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcPersonAndOrganization">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:sequence>
<xs:element name="ThePerson" type="ifc:IfcPerson" nillable="true"/>
<xs:element name="TheOrganization" type="ifc:IfcOrganization" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPlacement" type="ifc:IfcPlacement" abstract="true" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
<xs:complexType name="IfcPlacement" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcGeometricRepresentationItem">
<xs:sequence>
<xs:element name="Location" type="ifc:IfcCartesianPoint" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPoint" type="ifc:IfcPoint" abstract="true" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
<xs:complexType name="IfcPoint" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcGeometricRepresentationItem"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPort" type="ifc:IfcPort" abstract="true" substitutionGroup="ifc:IfcProduct" nillable="true"/>
<xs:complexType name="IfcPort" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcProduct"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcProcedure" type="ifc:IfcProcedure" substitutionGroup="ifc:IfcProcess" nillable="true"/>
<xs:complexType name="IfcProcedure">
<xs:complexContent>
<xs:extension base="ifc:IfcProcess"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcProcedureType" type="ifc:IfcProcedureType" substitutionGroup="ifc:IfcTypeProcess" nillable="true"/>
<xs:complexType name="IfcProcedureType">
<xs:complexContent>
<xs:extension base="ifc:IfcTypeProcess">
<xs:attribute name="PredefinedType" type="ifc:IfcProcedureTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcProcess" type="ifc:IfcProcess" abstract="true" substitutionGroup="ifc:IfcObject" nillable="true"/>
<xs:complexType name="IfcProcess" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcObject"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcProduct" type="ifc:IfcProduct" abstract="true" substitutionGroup="ifc:IfcObject" nillable="true"/>
<xs:complexType name="IfcProduct" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcObject"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcProfileDef" type="ifc:IfcProfileDef" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcProfileDef">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:attribute name="ProfileType" type="ifc:IfcProfileTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcProject" type="ifc:IfcProject" substitutionGroup="ifc:IfcContext" nillable="true"/>
<xs:complexType name="IfcProject">
<xs:complexContent>
<xs:extension base="ifc:IfcContext"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcProjectLibrary" type="ifc:IfcProjectLibrary" substitutionGroup="ifc:IfcContext" nillable="true"/>
<xs:complexType name="IfcProjectLibrary">
<xs:complexContent>
<xs:extension base="ifc:IfcContext"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcProperty" type="ifc:IfcProperty" abstract="true" substitutionGroup="ifc:IfcPropertyAbstraction" nillable="true"/>
<xs:complexType name="IfcProperty" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcPropertyAbstraction">
<xs:attribute name="Name" type="ifc:IfcIdentifier" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertyAbstraction" type="ifc:IfcPropertyAbstraction" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcPropertyAbstraction" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertyBoundedValue" type="ifc:IfcPropertyBoundedValue" substitutionGroup="ifc:IfcSimpleProperty" nillable="true"/>
<xs:complexType name="IfcPropertyBoundedValue">
<xs:complexContent>
<xs:extension base="ifc:IfcSimpleProperty"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertyDefinition" type="ifc:IfcPropertyDefinition" abstract="true" substitutionGroup="ifc:IfcRoot" nillable="true"/>
<xs:complexType name="IfcPropertyDefinition" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcRoot"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertyEnumeratedValue" type="ifc:IfcPropertyEnumeratedValue" substitutionGroup="ifc:IfcSimpleProperty" nillable="true"/>
<xs:complexType name="IfcPropertyEnumeratedValue">
<xs:complexContent>
<xs:extension base="ifc:IfcSimpleProperty"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertyEnumeration" type="ifc:IfcPropertyEnumeration" substitutionGroup="ifc:IfcPropertyAbstraction" nillable="true"/>
<xs:complexType name="IfcPropertyEnumeration">
<xs:complexContent>
<xs:extension base="ifc:IfcPropertyAbstraction">
<xs:sequence>
<xs:element name="EnumerationValues">
<xs:complexType>
<xs:group ref="ifc:IfcValue" maxOccurs="unbounded"/>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcValue"/>
<xs:attribute ref="ifc:cType" fixed="list-unique"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertyListValue" type="ifc:IfcPropertyListValue" substitutionGroup="ifc:IfcSimpleProperty" nillable="true"/>
<xs:complexType name="IfcPropertyListValue">
<xs:complexContent>
<xs:extension base="ifc:IfcSimpleProperty"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertyReferenceValue" type="ifc:IfcPropertyReferenceValue" substitutionGroup="ifc:IfcSimpleProperty" nillable="true"/>
<xs:complexType name="IfcPropertyReferenceValue">
<xs:complexContent>
<xs:extension base="ifc:IfcSimpleProperty"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertySet" type="ifc:IfcPropertySet" substitutionGroup="ifc:IfcPropertySetDefinition" nillable="true"/>
<xs:complexType name="IfcPropertySet">
<xs:complexContent>
<xs:extension base="ifc:IfcPropertySetDefinition">
<xs:sequence>
<xs:element name="HasProperties">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcProperty" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcProperty"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertySetDefinition" type="ifc:IfcPropertySetDefinition" abstract="true" substitutionGroup="ifc:IfcPropertyDefinition" nillable="true"/>
<xs:complexType name="IfcPropertySetDefinition" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcPropertyDefinition"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertySetTemplate" type="ifc:IfcPropertySetTemplate" substitutionGroup="ifc:IfcPropertyTemplateDefinition" nillable="true"/>
<xs:complexType name="IfcPropertySetTemplate">
<xs:complexContent>
<xs:extension base="ifc:IfcPropertyTemplateDefinition">
<xs:sequence>
<xs:element name="HasPropertyTemplates">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcPropertyTemplate" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcPropertyTemplate"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertySingleValue" type="ifc:IfcPropertySingleValue" substitutionGroup="ifc:IfcSimpleProperty" nillable="true"/>
<xs:complexType name="IfcPropertySingleValue">
<xs:complexContent>
<xs:extension base="ifc:IfcSimpleProperty"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertyTableValue" type="ifc:IfcPropertyTableValue" substitutionGroup="ifc:IfcSimpleProperty" nillable="true"/>
<xs:complexType name="IfcPropertyTableValue">
<xs:complexContent>
<xs:extension base="ifc:IfcSimpleProperty"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertyTemplate" type="ifc:IfcPropertyTemplate" abstract="true" substitutionGroup="ifc:IfcPropertyTemplateDefinition" nillable="true"/>
<xs:complexType name="IfcPropertyTemplate" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcPropertyTemplateDefinition"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcPropertyTemplateDefinition" type="ifc:IfcPropertyTemplateDefinition" abstract="true" substitutionGroup="ifc:IfcPropertyDefinition" nillable="true"/>
<xs:complexType name="IfcPropertyTemplateDefinition" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcPropertyDefinition"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcQuantityArea" type="ifc:IfcQuantityArea" substitutionGroup="ifc:IfcStrippedOptional" nillable="true"/>
<xs:complexType name="IfcQuantityArea">
<xs:complexContent>
<xs:extension base="ifc:IfcStrippedOptional"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcQuantityCount" type="ifc:IfcQuantityCount" substitutionGroup="ifc:IfcStrippedOptional" nillable="true"/>
<xs:complexType name="IfcQuantityCount">
<xs:complexContent>
<xs:extension base="ifc:IfcStrippedOptional"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcQuantityLength" type="ifc:IfcQuantityLength" substitutionGroup="ifc:IfcStrippedOptional" nillable="true"/>
<xs:complexType name="IfcQuantityLength">
<xs:complexContent>
<xs:extension base="ifc:IfcStrippedOptional"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcQuantityTime" type="ifc:IfcQuantityTime" substitutionGroup="ifc:IfcStrippedOptional" nillable="true"/>
<xs:complexType name="IfcQuantityTime">
<xs:complexContent>
<xs:extension base="ifc:IfcStrippedOptional"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcQuantityVolume" type="ifc:IfcQuantityVolume" substitutionGroup="ifc:IfcStrippedOptional" nillable="true"/>
<xs:complexType name="IfcQuantityVolume">
<xs:complexContent>
<xs:extension base="ifc:IfcStrippedOptional"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcQuantityWeight" type="ifc:IfcQuantityWeight" substitutionGroup="ifc:IfcStrippedOptional" nillable="true"/>
<xs:complexType name="IfcQuantityWeight">
<xs:complexContent>
<xs:extension base="ifc:IfcStrippedOptional"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRecurrencePattern" type="ifc:IfcRecurrencePattern" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcRecurrencePattern">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:attribute name="RecurrenceType" type="ifc:IfcRecurrenceTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcReference" type="ifc:IfcReference" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcReference">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelAggregates" type="ifc:IfcRelAggregates" substitutionGroup="ifc:IfcRelDecomposes" nillable="true"/>
<xs:complexType name="IfcRelAggregates">
<xs:complexContent>
<xs:extension base="ifc:IfcRelDecomposes">
<xs:sequence>
<xs:element name="RelatingObject" type="ifc:IfcObjectDefinition" nillable="true"/>
<xs:element name="RelatedObjects">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcObjectDefinition" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcObjectDefinition"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelAssigns" type="ifc:IfcRelAssigns" abstract="true" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
<xs:complexType name="IfcRelAssigns" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcRelationship">
<xs:sequence>
<xs:element name="RelatedObjects">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcObjectDefinition" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcObjectDefinition"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelAssignsToControl" type="ifc:IfcRelAssignsToControl" substitutionGroup="ifc:IfcRelAssigns" nillable="true"/>
<xs:complexType name="IfcRelAssignsToControl">
<xs:complexContent>
<xs:extension base="ifc:IfcRelAssigns">
<xs:sequence>
<xs:element name="RelatingControl" type="ifc:IfcControl" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelAssignsToGroup" type="ifc:IfcRelAssignsToGroup" substitutionGroup="ifc:IfcRelAssigns" nillable="true"/>
<xs:complexType name="IfcRelAssignsToGroup">
<xs:complexContent>
<xs:extension base="ifc:IfcRelAssigns">
<xs:sequence>
<xs:element name="RelatingGroup" type="ifc:IfcGroup" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelAssignsToProduct" type="ifc:IfcRelAssignsToProduct" substitutionGroup="ifc:IfcRelAssigns" nillable="true"/>
<xs:complexType name="IfcRelAssignsToProduct">
<xs:complexContent>
<xs:extension base="ifc:IfcRelAssigns">
<xs:sequence>
<xs:element name="RelatingProduct">
<xs:complexType>
<xs:group ref="ifc:IfcProductSelect"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelAssociates" type="ifc:IfcRelAssociates" abstract="true" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
<xs:complexType name="IfcRelAssociates" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcRelationship">
<xs:sequence>
<xs:element name="RelatedObjects">
<xs:complexType>
<xs:group ref="ifc:IfcDefinitionSelect" maxOccurs="unbounded"/>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcDefinitionSelect"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelAssociatesApproval" type="ifc:IfcRelAssociatesApproval" substitutionGroup="ifc:IfcRelAssociates" nillable="true"/>
<xs:complexType name="IfcRelAssociatesApproval">
<xs:complexContent>
<xs:extension base="ifc:IfcRelAssociates">
<xs:sequence>
<xs:element name="RelatingApproval" type="ifc:IfcApproval" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelAssociatesClassification" type="ifc:IfcRelAssociatesClassification" substitutionGroup="ifc:IfcRelAssociates" nillable="true"/>
<xs:complexType name="IfcRelAssociatesClassification">
<xs:complexContent>
<xs:extension base="ifc:IfcRelAssociates">
<xs:sequence>
<xs:element name="RelatingClassification">
<xs:complexType>
<xs:group ref="ifc:IfcClassificationSelect"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelAssociatesConstraint" type="ifc:IfcRelAssociatesConstraint" substitutionGroup="ifc:IfcRelAssociates" nillable="true"/>
<xs:complexType name="IfcRelAssociatesConstraint">
<xs:complexContent>
<xs:extension base="ifc:IfcRelAssociates">
<xs:sequence>
<xs:element name="RelatingConstraint" type="ifc:IfcConstraint" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelAssociatesLibrary" type="ifc:IfcRelAssociatesLibrary" substitutionGroup="ifc:IfcRelAssociates" nillable="true"/>
<xs:complexType name="IfcRelAssociatesLibrary">
<xs:complexContent>
<xs:extension base="ifc:IfcRelAssociates">
<xs:sequence>
<xs:element name="RelatingLibrary">
<xs:complexType>
<xs:group ref="ifc:IfcLibrarySelect"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelAssociatesMaterial" type="ifc:IfcRelAssociatesMaterial" substitutionGroup="ifc:IfcRelAssociates" nillable="true"/>
<xs:complexType name="IfcRelAssociatesMaterial">
<xs:complexContent>
<xs:extension base="ifc:IfcRelAssociates">
<xs:sequence>
<xs:element name="RelatingMaterial">
<xs:complexType>
<xs:group ref="ifc:IfcMaterialSelect"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelConnects" type="ifc:IfcRelConnects" abstract="true" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
<xs:complexType name="IfcRelConnects" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcRelationship"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelConnectsPorts" type="ifc:IfcRelConnectsPorts" substitutionGroup="ifc:IfcRelConnects" nillable="true"/>
<xs:complexType name="IfcRelConnectsPorts">
<xs:complexContent>
<xs:extension base="ifc:IfcRelConnects">
<xs:sequence>
<xs:element name="RelatingPort" type="ifc:IfcPort" nillable="true"/>
<xs:element name="RelatedPort" type="ifc:IfcPort" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelContainedInSpatialStructure" type="ifc:IfcRelContainedInSpatialStructure" substitutionGroup="ifc:IfcRelConnects" nillable="true"/>
<xs:complexType name="IfcRelContainedInSpatialStructure">
<xs:complexContent>
<xs:extension base="ifc:IfcRelConnects">
<xs:sequence>
<xs:element name="RelatedElements">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcProduct" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcProduct"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="RelatingStructure" type="ifc:IfcSpatialElement" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelDeclares" type="ifc:IfcRelDeclares" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
<xs:complexType name="IfcRelDeclares">
<xs:complexContent>
<xs:extension base="ifc:IfcRelationship">
<xs:sequence>
<xs:element name="RelatingContext" type="ifc:IfcContext" nillable="true"/>
<xs:element name="RelatedDefinitions">
<xs:complexType>
<xs:group ref="ifc:IfcDefinitionSelect" maxOccurs="unbounded"/>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcDefinitionSelect"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelDecomposes" type="ifc:IfcRelDecomposes" abstract="true" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
<xs:complexType name="IfcRelDecomposes" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcRelationship"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelDefines" type="ifc:IfcRelDefines" abstract="true" substitutionGroup="ifc:IfcRelationship" nillable="true"/>
<xs:complexType name="IfcRelDefines" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcRelationship"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelDefinesByObject" type="ifc:IfcRelDefinesByObject" substitutionGroup="ifc:IfcRelDefines" nillable="true"/>
<xs:complexType name="IfcRelDefinesByObject">
<xs:complexContent>
<xs:extension base="ifc:IfcRelDefines">
<xs:sequence>
<xs:element name="RelatedObjects">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcObject" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcObject"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="RelatingObject" type="ifc:IfcObject" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelDefinesByProperties" type="ifc:IfcRelDefinesByProperties" substitutionGroup="ifc:IfcRelDefines" nillable="true"/>
<xs:complexType name="IfcRelDefinesByProperties">
<xs:complexContent>
<xs:extension base="ifc:IfcRelDefines">
<xs:sequence>
<xs:element name="RelatedObjects" type="ifc:IfcObjectDefinition" nillable="true" maxOccurs="1"/>
<xs:element name="RelatingPropertyDefinition">
<xs:complexType>
<xs:group ref="ifc:IfcPropertySetDefinitionSelect"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelDefinesByTemplate" type="ifc:IfcRelDefinesByTemplate" substitutionGroup="ifc:IfcRelDefines" nillable="true"/>
<xs:complexType name="IfcRelDefinesByTemplate">
<xs:complexContent>
<xs:extension base="ifc:IfcRelDefines">
<xs:sequence>
<xs:element name="RelatedPropertySets">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcPropertySetDefinition" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcPropertySetDefinition"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="RelatingTemplate" type="ifc:IfcPropertySetTemplate" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelDefinesByType" type="ifc:IfcRelDefinesByType" substitutionGroup="ifc:IfcRelDefines" nillable="true"/>
<xs:complexType name="IfcRelDefinesByType">
<xs:complexContent>
<xs:extension base="ifc:IfcRelDefines">
<xs:sequence>
<xs:element name="RelatedObjects">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcObject" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcObject"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="RelatingType" type="ifc:IfcTypeObject" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelFlowControlElements" type="ifc:IfcRelFlowControlElements" substitutionGroup="ifc:IfcRelConnects" nillable="true"/>
<xs:complexType name="IfcRelFlowControlElements">
<xs:complexContent>
<xs:extension base="ifc:IfcRelConnects">
<xs:sequence>
<xs:element name="RelatedControlElements">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcDistributionControlElement" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcDistributionControlElement"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="RelatingFlowElement" type="ifc:IfcDistributionFlowElement" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelNests" type="ifc:IfcRelNests" substitutionGroup="ifc:IfcRelDecomposes" nillable="true"/>
<xs:complexType name="IfcRelNests">
<xs:complexContent>
<xs:extension base="ifc:IfcRelDecomposes">
<xs:sequence>
<xs:element name="RelatingObject" type="ifc:IfcObjectDefinition" nillable="true"/>
<xs:element name="RelatedObjects">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcObjectDefinition" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcObjectDefinition"/>
<xs:attribute ref="ifc:cType" fixed="list"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRelationship" type="ifc:IfcRelationship" abstract="true" substitutionGroup="ifc:IfcRoot" nillable="true"/>
<xs:complexType name="IfcRelationship" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcRoot"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRepresentationItem" type="ifc:IfcRepresentationItem" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcRepresentationItem" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcRoot" type="ifc:IfcRoot" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcRoot" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:attribute name="GlobalId" type="ifc:IfcGloballyUniqueId" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IfcSIUnit-temp" abstract="true">
<xs:complexContent>
<xs:restriction base="ifc:IfcNamedUnit">
<xs:sequence/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSIUnit" type="ifc:IfcSIUnit" substitutionGroup="ifc:IfcNamedUnit" nillable="true"/>
<xs:complexType name="IfcSIUnit">
<xs:complexContent>
<xs:extension base="ifc:IfcSIUnit-temp">
<xs:attribute name="Name" type="ifc:IfcSIUnitName" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSchedulingTime" type="ifc:IfcSchedulingTime" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcSchedulingTime" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSensor" type="ifc:IfcSensor" substitutionGroup="ifc:IfcDistributionControlElement" nillable="true"/>
<xs:complexType name="IfcSensor">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSensorType" type="ifc:IfcSensorType" substitutionGroup="ifc:IfcDistributionControlElementType" nillable="true"/>
<xs:complexType name="IfcSensorType">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElementType">
<xs:attribute name="PredefinedType" type="ifc:IfcSensorTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSimpleProperty" type="ifc:IfcSimpleProperty" abstract="true" substitutionGroup="ifc:IfcProperty" nillable="true"/>
<xs:complexType name="IfcSimpleProperty" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcProperty"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSimplePropertyTemplate" type="ifc:IfcSimplePropertyTemplate" substitutionGroup="ifc:IfcPropertyTemplate" nillable="true"/>
<xs:complexType name="IfcSimplePropertyTemplate">
<xs:complexContent>
<xs:extension base="ifc:IfcPropertyTemplate"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSite" type="ifc:IfcSite" substitutionGroup="ifc:IfcSpatialStructureElement" nillable="true"/>
<xs:complexType name="IfcSite">
<xs:complexContent>
<xs:extension base="ifc:IfcSpatialStructureElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSpace" type="ifc:IfcSpace" substitutionGroup="ifc:IfcSpatialStructureElement" nillable="true"/>
<xs:complexType name="IfcSpace">
<xs:complexContent>
<xs:extension base="ifc:IfcSpatialStructureElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSpatialElement" type="ifc:IfcSpatialElement" abstract="true" substitutionGroup="ifc:IfcProduct" nillable="true"/>
<xs:complexType name="IfcSpatialElement" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcProduct"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSpatialStructureElement" type="ifc:IfcSpatialStructureElement" abstract="true" substitutionGroup="ifc:IfcSpatialElement" nillable="true"/>
<xs:complexType name="IfcSpatialStructureElement" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcSpatialElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSwitchingDevice" type="ifc:IfcSwitchingDevice" substitutionGroup="ifc:IfcFlowController" nillable="true"/>
<xs:complexType name="IfcSwitchingDevice">
<xs:complexContent>
<xs:extension base="ifc:IfcFlowController"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSwitchingDeviceType" type="ifc:IfcSwitchingDeviceType" substitutionGroup="ifc:IfcFlowControllerType" nillable="true"/>
<xs:complexType name="IfcSwitchingDeviceType">
<xs:complexContent>
<xs:extension base="ifc:IfcFlowControllerType">
<xs:attribute name="PredefinedType" type="ifc:IfcSwitchingDeviceTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcSystem" type="ifc:IfcSystem" substitutionGroup="ifc:IfcGroup" nillable="true"/>
<xs:complexType name="IfcSystem">
<xs:complexContent>
<xs:extension base="ifc:IfcGroup"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTable" type="ifc:IfcTable" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcTable">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTableColumn" type="ifc:IfcTableColumn" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcTableColumn">
<xs:complexContent>
<xs:extension base="ifc:Entity"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTask" type="ifc:IfcTask" substitutionGroup="ifc:IfcProcess" nillable="true"/>
<xs:complexType name="IfcTask">
<xs:complexContent>
<xs:extension base="ifc:IfcProcess"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTaskTime" type="ifc:IfcTaskTime" substitutionGroup="ifc:IfcSchedulingTime" nillable="true"/>
<xs:complexType name="IfcTaskTime">
<xs:complexContent>
<xs:extension base="ifc:IfcSchedulingTime"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTaskTimeRecurring" type="ifc:IfcTaskTimeRecurring" substitutionGroup="ifc:IfcTaskTime" nillable="true"/>
<xs:complexType name="IfcTaskTimeRecurring">
<xs:complexContent>
<xs:extension base="ifc:IfcTaskTime">
<xs:sequence>
<xs:element name="Recurrance" type="ifc:IfcRecurrencePattern" nillable="true"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTaskType" type="ifc:IfcTaskType" substitutionGroup="ifc:IfcTypeProcess" nillable="true"/>
<xs:complexType name="IfcTaskType">
<xs:complexContent>
<xs:extension base="ifc:IfcTypeProcess">
<xs:attribute name="PredefinedType" type="ifc:IfcTaskTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTimePeriod" type="ifc:IfcTimePeriod" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcTimePeriod">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:attribute name="StartTime" type="ifc:IfcTime" use="optional"/>
<xs:attribute name="EndTime" type="ifc:IfcTime" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTimeSeries" type="ifc:IfcTimeSeries" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcTimeSeries" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
<xs:attribute name="StartTime" type="ifc:IfcDateTime" use="optional"/>
<xs:attribute name="EndTime" type="ifc:IfcDateTime" use="optional"/>
<xs:attribute name="TimeSeriesDataType" type="ifc:IfcTimeSeriesDataTypeEnum" use="optional"/>
<xs:attribute name="DataOrigin" type="ifc:IfcDataOriginEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTransportElement" type="ifc:IfcTransportElement" substitutionGroup="ifc:IfcElement" nillable="true"/>
<xs:complexType name="IfcTransportElement">
<xs:complexContent>
<xs:extension base="ifc:IfcElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTransportElementType" type="ifc:IfcTransportElementType" substitutionGroup="ifc:IfcElementType" nillable="true"/>
<xs:complexType name="IfcTransportElementType">
<xs:complexContent>
<xs:extension base="ifc:IfcElementType">
<xs:attribute name="PredefinedType" type="ifc:IfcTransportElementTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTypeObject" type="ifc:IfcTypeObject" substitutionGroup="ifc:IfcObjectDefinition" nillable="true"/>
<xs:complexType name="IfcTypeObject">
<xs:complexContent>
<xs:extension base="ifc:IfcObjectDefinition"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTypeProcess" type="ifc:IfcTypeProcess" abstract="true" substitutionGroup="ifc:IfcTypeObject" nillable="true"/>
<xs:complexType name="IfcTypeProcess" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcTypeObject"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcTypeProduct" type="ifc:IfcTypeProduct" substitutionGroup="ifc:IfcTypeObject" nillable="true"/>
<xs:complexType name="IfcTypeProduct">
<xs:complexContent>
<xs:extension base="ifc:IfcTypeObject"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcUnitAssignment" type="ifc:IfcUnitAssignment" substitutionGroup="ifc:Entity" nillable="true"/>
<xs:complexType name="IfcUnitAssignment">
<xs:complexContent>
<xs:extension base="ifc:Entity">
<xs:sequence>
<xs:element name="Units">
<xs:complexType>
<xs:group ref="ifc:IfcUnit" maxOccurs="unbounded"/>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcUnit"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcUnitaryControlElement" type="ifc:IfcUnitaryControlElement" substitutionGroup="ifc:IfcDistributionControlElement" nillable="true"/>
<xs:complexType name="IfcUnitaryControlElement">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElement"/>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcUnitaryControlElementType" type="ifc:IfcUnitaryControlElementType" substitutionGroup="ifc:IfcDistributionControlElementType" nillable="true"/>
<xs:complexType name="IfcUnitaryControlElementType">
<xs:complexContent>
<xs:extension base="ifc:IfcDistributionControlElementType">
<xs:attribute name="PredefinedType" type="ifc:IfcUnitaryControlElementTypeEnum" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="IfcZone" type="ifc:IfcZone" substitutionGroup="ifc:IfcSystem" nillable="true"/>
<xs:complexType name="IfcZone">
<xs:complexContent>
<xs:extension base="ifc:IfcSystem"/>
</xs:complexContent>
</xs:complexType>
<!-- group declarations (for SELECT data type definitions) -->
<xs:group name="IfcActorSelect">
<xs:choice>
<xs:element ref="ifc:IfcOrganization"/>
<xs:element ref="ifc:IfcPerson"/>
<xs:element ref="ifc:IfcPersonAndOrganization"/>
</xs:choice>
</xs:group>
<xs:group name="IfcAxis2Placement">
<xs:choice>
<xs:element ref="ifc:IfcAxis2Placement3D"/>
</xs:choice>
</xs:group>
<xs:group name="IfcClassificationReferenceSelect">
<xs:choice>
<xs:element ref="ifc:IfcClassification"/>
<xs:element ref="ifc:IfcClassificationReference"/>
</xs:choice>
</xs:group>
<xs:group name="IfcClassificationSelect">
<xs:choice>
<xs:element ref="ifc:IfcClassification"/>
<xs:element ref="ifc:IfcClassificationReference"/>
</xs:choice>
</xs:group>
<xs:group name="IfcDefinitionSelect">
<xs:choice>
<xs:element ref="ifc:IfcObjectDefinition"/>
<xs:element ref="ifc:IfcPropertyDefinition"/>
</xs:choice>
</xs:group>
<xs:group name="IfcLibrarySelect">
<xs:choice>
<xs:element ref="ifc:IfcLibraryInformation"/>
</xs:choice>
</xs:group>
<xs:group name="IfcMaterialSelect">
<xs:choice>
<xs:element ref="ifc:IfcMaterialDefinition"/>
<xs:element ref="ifc:IfcMaterialUsageDefinition"/>
</xs:choice>
</xs:group>
<xs:group name="IfcMetricValueSelect">
<xs:choice>
<xs:element ref="ifc:IfcAreaMeasure-wrapper"/>
<xs:element ref="ifc:IfcBoolean-wrapper"/>
<xs:element ref="ifc:IfcCountMeasure-wrapper"/>
<xs:element ref="ifc:IfcDate-wrapper"/>
<xs:element ref="ifc:IfcDateTime-wrapper"/>
<xs:element ref="ifc:IfcDuration-wrapper"/>
<xs:element ref="ifc:IfcElectricConductanceMeasure-wrapper"/>
<xs:element ref="ifc:IfcElectricCurrentMeasure-wrapper"/>
<xs:element ref="ifc:IfcElectricVoltageMeasure-wrapper"/>
<xs:element ref="ifc:IfcForceMeasure-wrapper"/>
<xs:element ref="ifc:IfcIdentifier-wrapper"/>
<xs:element ref="ifc:IfcIlluminanceMeasure-wrapper"/>
<xs:element ref="ifc:IfcInteger-wrapper"/>
<xs:element ref="ifc:IfcIonConcentrationMeasure-wrapper"/>
<xs:element ref="ifc:IfcLabel-wrapper"/>
<xs:element ref="ifc:IfcLengthMeasure-wrapper"/>
<xs:element ref="ifc:IfcLinearVelocityMeasure-wrapper"/>
<xs:element ref="ifc:IfcLogical-wrapper"/>
<xs:element ref="ifc:IfcMassMeasure-wrapper"/>
<xs:element ref="ifc:IfcMeasureWithUnit"/>
<xs:element ref="ifc:IfcNormalisedRatioMeasure-wrapper"/>
<xs:element ref="ifc:IfcPHMeasure-wrapper"/>
<xs:element ref="ifc:IfcPlaneAngleMeasure-wrapper"/>
<xs:element ref="ifc:IfcPositiveLengthMeasure-wrapper"/>
<xs:element ref="ifc:IfcPositiveRatioMeasure-wrapper"/>
<xs:element ref="ifc:IfcPowerMeasure-wrapper"/>
<xs:element ref="ifc:IfcPressureMeasure-wrapper"/>
<xs:element ref="ifc:IfcRadioActivityMeasure-wrapper"/>
<xs:element ref="ifc:IfcRatioMeasure-wrapper"/>
<xs:element ref="ifc:IfcReal-wrapper"/>
<xs:element ref="ifc:IfcReference"/>
<xs:element ref="ifc:IfcSoundPressureMeasure-wrapper"/>
<xs:element ref="ifc:IfcTable"/>
<xs:element ref="ifc:IfcTemperatureRateOfChangeMeasure-wrapper"/>
<xs:element ref="ifc:IfcText-wrapper"/>
<xs:element ref="ifc:IfcThermalConductivityMeasure-wrapper"/>
<xs:element ref="ifc:IfcThermodynamicTemperatureMeasure-wrapper"/>
<xs:element ref="ifc:IfcTime-wrapper"/>
<xs:element ref="ifc:IfcTimeMeasure-wrapper"/>
<xs:element ref="ifc:IfcTimeSeries"/>
<xs:element ref="ifc:IfcTimeStamp-wrapper"/>
<xs:element ref="ifc:IfcTorqueMeasure-wrapper"/>
<xs:element ref="ifc:IfcVolumetricFlowRateMeasure-wrapper"/>
</xs:choice>
</xs:group>
<xs:group name="IfcObjectReferenceSelect">
<xs:choice>
<xs:element ref="ifc:IfcExternalReference"/>
<xs:element ref="ifc:IfcMaterialDefinition"/>
<xs:element ref="ifc:IfcOrganization"/>
<xs:element ref="ifc:IfcPerson"/>
<xs:element ref="ifc:IfcPersonAndOrganization"/>
<xs:element ref="ifc:IfcTable"/>
<xs:element ref="ifc:IfcTimeSeries"/>
</xs:choice>
</xs:group>
<xs:group name="IfcProductSelect">
<xs:choice>
<xs:element ref="ifc:IfcProduct"/>
<xs:element ref="ifc:IfcTypeProduct"/>
</xs:choice>
</xs:group>
<xs:group name="IfcPropertySetDefinitionSelect">
<xs:choice>
<xs:element ref="ifc:IfcPropertySetDefinition"/>
</xs:choice>
</xs:group>
<xs:group name="IfcUnit">
<xs:choice>
<xs:element ref="ifc:IfcNamedUnit"/>
</xs:choice>
</xs:group>
<xs:group name="IfcValue">
<xs:choice>
<xs:element ref="ifc:IfcAreaMeasure-wrapper"/>
<xs:element ref="ifc:IfcBoolean-wrapper"/>
<xs:element ref="ifc:IfcCountMeasure-wrapper"/>
<xs:element ref="ifc:IfcDate-wrapper"/>
<xs:element ref="ifc:IfcDateTime-wrapper"/>
<xs:element ref="ifc:IfcDuration-wrapper"/>
<xs:element ref="ifc:IfcElectricConductanceMeasure-wrapper"/>
<xs:element ref="ifc:IfcElectricCurrentMeasure-wrapper"/>
<xs:element ref="ifc:IfcElectricVoltageMeasure-wrapper"/>
<xs:element ref="ifc:IfcForceMeasure-wrapper"/>
<xs:element ref="ifc:IfcIdentifier-wrapper"/>
<xs:element ref="ifc:IfcIlluminanceMeasure-wrapper"/>
<xs:element ref="ifc:IfcInteger-wrapper"/>
<xs:element ref="ifc:IfcIonConcentrationMeasure-wrapper"/>
<xs:element ref="ifc:IfcLabel-wrapper"/>
<xs:element ref="ifc:IfcLengthMeasure-wrapper"/>
<xs:element ref="ifc:IfcLinearVelocityMeasure-wrapper"/>
<xs:element ref="ifc:IfcLogical-wrapper"/>
<xs:element ref="ifc:IfcMassMeasure-wrapper"/>
<xs:element ref="ifc:IfcNormalisedRatioMeasure-wrapper"/>
<xs:element ref="ifc:IfcPHMeasure-wrapper"/>
<xs:element ref="ifc:IfcPlaneAngleMeasure-wrapper"/>
<xs:element ref="ifc:IfcPositiveLengthMeasure-wrapper"/>
<xs:element ref="ifc:IfcPositiveRatioMeasure-wrapper"/>
<xs:element ref="ifc:IfcPowerMeasure-wrapper"/>
<xs:element ref="ifc:IfcPressureMeasure-wrapper"/>
<xs:element ref="ifc:IfcRadioActivityMeasure-wrapper"/>
<xs:element ref="ifc:IfcRatioMeasure-wrapper"/>
<xs:element ref="ifc:IfcReal-wrapper"/>
<xs:element ref="ifc:IfcSoundPressureMeasure-wrapper"/>
<xs:element ref="ifc:IfcTemperatureRateOfChangeMeasure-wrapper"/>
<xs:element ref="ifc:IfcText-wrapper"/>
<xs:element ref="ifc:IfcThermalConductivityMeasure-wrapper"/>
<xs:element ref="ifc:IfcThermodynamicTemperatureMeasure-wrapper"/>
<xs:element ref="ifc:IfcTime-wrapper"/>
<xs:element ref="ifc:IfcTimeMeasure-wrapper"/>
<xs:element ref="ifc:IfcTimeStamp-wrapper"/>
<xs:element ref="ifc:IfcTorqueMeasure-wrapper"/>
<xs:element ref="ifc:IfcVolumetricFlowRateMeasure-wrapper"/>
</xs:choice>
</xs:group>
<!-- enumeration type declarations (for ENUMERATION data type definitions) -->
<xs:simpleType name="IfcActuatorTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="electricactuator"/>
<xs:enumeration value="handoperatedactuator"/>
<xs:enumeration value="hydraulicactuator"/>
<xs:enumeration value="pneumaticactuator"/>
<xs:enumeration value="thermostaticactuator"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcAlarmTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="bell"/>
<xs:enumeration value="breakglassbutton"/>
<xs:enumeration value="light"/>
<xs:enumeration value="manualpullbox"/>
<xs:enumeration value="siren"/>
<xs:enumeration value="whistle"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcBenchmarkEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="greaterthan"/>
<xs:enumeration value="greaterthanorequalto"/>
<xs:enumeration value="lessthan"/>
<xs:enumeration value="lessthanorequalto"/>
<xs:enumeration value="equalto"/>
<xs:enumeration value="notequalto"/>
<xs:enumeration value="includes"/>
<xs:enumeration value="notincludes"/>
<xs:enumeration value="includedin"/>
<xs:enumeration value="notincludedin"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcCableSegmentTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="busbarsegment"/>
<xs:enumeration value="cablesegment"/>
<xs:enumeration value="conductorsegment"/>
<xs:enumeration value="coresegment"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcChangeActionEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="nochange"/>
<xs:enumeration value="modified"/>
<xs:enumeration value="added"/>
<xs:enumeration value="deleted"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcCommunicationsApplianceTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="antenna"/>
<xs:enumeration value="computer"/>
<xs:enumeration value="fax"/>
<xs:enumeration value="gateway"/>
<xs:enumeration value="modem"/>
<xs:enumeration value="networkappliance"/>
<xs:enumeration value="networkbridge"/>
<xs:enumeration value="networkhub"/>
<xs:enumeration value="printer"/>
<xs:enumeration value="repeater"/>
<xs:enumeration value="router"/>
<xs:enumeration value="scanner"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcConstraintEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="hard"/>
<xs:enumeration value="soft"/>
<xs:enumeration value="advisory"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcControllerTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="floating"/>
<xs:enumeration value="programmable"/>
<xs:enumeration value="proportional"/>
<xs:enumeration value="multiposition"/>
<xs:enumeration value="twoposition"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcDataOriginEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="measured"/>
<xs:enumeration value="predicted"/>
<xs:enumeration value="simulated"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcDistributionPortTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="cable"/>
<xs:enumeration value="cablecarrier"/>
<xs:enumeration value="duct"/>
<xs:enumeration value="pipe"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcDistributionSystemEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="airconditioning"/>
<xs:enumeration value="audiovisual"/>
<xs:enumeration value="chemical"/>
<xs:enumeration value="chilledwater"/>
<xs:enumeration value="communication"/>
<xs:enumeration value="compressedair"/>
<xs:enumeration value="condenserwater"/>
<xs:enumeration value="control"/>
<xs:enumeration value="conveying"/>
<xs:enumeration value="data"/>
<xs:enumeration value="disposal"/>
<xs:enumeration value="domesticcoldwater"/>
<xs:enumeration value="domestichotwater"/>
<xs:enumeration value="drainage"/>
<xs:enumeration value="earthing"/>
<xs:enumeration value="electrical"/>
<xs:enumeration value="electroacoustic"/>
<xs:enumeration value="exhaust"/>
<xs:enumeration value="fireprotection"/>
<xs:enumeration value="fuel"/>
<xs:enumeration value="gas"/>
<xs:enumeration value="hazardous"/>
<xs:enumeration value="heating"/>
<xs:enumeration value="lighting"/>
<xs:enumeration value="lightningprotection"/>
<xs:enumeration value="municipalsolidwaste"/>
<xs:enumeration value="oil"/>
<xs:enumeration value="operational"/>
<xs:enumeration value="powergeneration"/>
<xs:enumeration value="rainwater"/>
<xs:enumeration value="refrigeration"/>
<xs:enumeration value="security"/>
<xs:enumeration value="sewage"/>
<xs:enumeration value="signal"/>
<xs:enumeration value="stormwater"/>
<xs:enumeration value="telephone"/>
<xs:enumeration value="tv"/>
<xs:enumeration value="vacuum"/>
<xs:enumeration value="vent"/>
<xs:enumeration value="ventilation"/>
<xs:enumeration value="wastewater"/>
<xs:enumeration value="watersupply"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcEventTriggerTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="eventrule"/>
<xs:enumeration value="eventmessage"/>
<xs:enumeration value="eventtime"/>
<xs:enumeration value="eventcomplex"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcEventTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="startevent"/>
<xs:enumeration value="endevent"/>
<xs:enumeration value="intermediateevent"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcFlowDirectionEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="source"/>
<xs:enumeration value="sink"/>
<xs:enumeration value="sourceandsink"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcFlowInstrumentTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="pressuregauge"/>
<xs:enumeration value="thermometer"/>
<xs:enumeration value="ammeter"/>
<xs:enumeration value="frequencymeter"/>
<xs:enumeration value="powerfactormeter"/>
<xs:enumeration value="phaseanglemeter"/>
<xs:enumeration value="voltmeter_peak"/>
<xs:enumeration value="voltmeter_rms"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcObjectiveEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="codecompliance"/>
<xs:enumeration value="codewaiver"/>
<xs:enumeration value="designintent"/>
<xs:enumeration value="external"/>
<xs:enumeration value="healthandsafety"/>
<xs:enumeration value="mergeconflict"/>
<xs:enumeration value="modelview"/>
<xs:enumeration value="parameter"/>
<xs:enumeration value="requirement"/>
<xs:enumeration value="specification"/>
<xs:enumeration value="triggercondition"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcProcedureTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="advice_caution"/>
<xs:enumeration value="advice_note"/>
<xs:enumeration value="advice_warning"/>
<xs:enumeration value="calibration"/>
<xs:enumeration value="diagnostic"/>
<xs:enumeration value="shutdown"/>
<xs:enumeration value="startup"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcProfileTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="curve"/>
<xs:enumeration value="area"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcPropertySetTemplateTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="pset_typedrivenonly"/>
<xs:enumeration value="pset_typedrivenoverride"/>
<xs:enumeration value="pset_occurrencedriven"/>
<xs:enumeration value="pset_performancedriven"/>
<xs:enumeration value="qto_typedrivenonly"/>
<xs:enumeration value="qto_typedrivenoverride"/>
<xs:enumeration value="qto_occurrencedriven"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcRecurrenceTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="daily"/>
<xs:enumeration value="weekly"/>
<xs:enumeration value="monthly_by_day_of_month"/>
<xs:enumeration value="monthly_by_position"/>
<xs:enumeration value="by_day_count"/>
<xs:enumeration value="by_weekday_count"/>
<xs:enumeration value="yearly_by_day_of_month"/>
<xs:enumeration value="yearly_by_position"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcSIPrefix">
<xs:restriction base="xs:string">
<xs:enumeration value="exa"/>
<xs:enumeration value="peta"/>
<xs:enumeration value="tera"/>
<xs:enumeration value="giga"/>
<xs:enumeration value="mega"/>
<xs:enumeration value="kilo"/>
<xs:enumeration value="hecto"/>
<xs:enumeration value="deca"/>
<xs:enumeration value="deci"/>
<xs:enumeration value="centi"/>
<xs:enumeration value="milli"/>
<xs:enumeration value="micro"/>
<xs:enumeration value="nano"/>
<xs:enumeration value="pico"/>
<xs:enumeration value="femto"/>
<xs:enumeration value="atto"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcSIUnitName">
<xs:restriction base="xs:string">
<xs:enumeration value="ampere"/>
<xs:enumeration value="becquerel"/>
<xs:enumeration value="candela"/>
<xs:enumeration value="coulomb"/>
<xs:enumeration value="cubic_metre"/>
<xs:enumeration value="degree_celsius"/>
<xs:enumeration value="farad"/>
<xs:enumeration value="gram"/>
<xs:enumeration value="gray"/>
<xs:enumeration value="henry"/>
<xs:enumeration value="hertz"/>
<xs:enumeration value="joule"/>
<xs:enumeration value="kelvin"/>
<xs:enumeration value="lumen"/>
<xs:enumeration value="lux"/>
<xs:enumeration value="metre"/>
<xs:enumeration value="mole"/>
<xs:enumeration value="newton"/>
<xs:enumeration value="ohm"/>
<xs:enumeration value="pascal"/>
<xs:enumeration value="radian"/>
<xs:enumeration value="second"/>
<xs:enumeration value="siemens"/>
<xs:enumeration value="sievert"/>
<xs:enumeration value="square_metre"/>
<xs:enumeration value="steradian"/>
<xs:enumeration value="tesla"/>
<xs:enumeration value="volt"/>
<xs:enumeration value="watt"/>
<xs:enumeration value="weber"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcSensorTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="conductancesensor"/>
<xs:enumeration value="contactsensor"/>
<xs:enumeration value="firesensor"/>
<xs:enumeration value="flowsensor"/>
<xs:enumeration value="gassensor"/>
<xs:enumeration value="heatsensor"/>
<xs:enumeration value="humiditysensor"/>
<xs:enumeration value="ionconcentrationsensor"/>
<xs:enumeration value="levelsensor"/>
<xs:enumeration value="lightsensor"/>
<xs:enumeration value="moisturesensor"/>
<xs:enumeration value="movementsensor"/>
<xs:enumeration value="phsensor"/>
<xs:enumeration value="pressuresensor"/>
<xs:enumeration value="radiationsensor"/>
<xs:enumeration value="radioactivitysensor"/>
<xs:enumeration value="smokesensor"/>
<xs:enumeration value="soundsensor"/>
<xs:enumeration value="temperaturesensor"/>
<xs:enumeration value="windsensor"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcSimplePropertyTemplateTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="p_singlevalue"/>
<xs:enumeration value="p_enumeratedvalue"/>
<xs:enumeration value="p_boundedvalue"/>
<xs:enumeration value="p_listvalue"/>
<xs:enumeration value="p_tablevalue"/>
<xs:enumeration value="p_referencevalue"/>
<xs:enumeration value="q_length"/>
<xs:enumeration value="q_area"/>
<xs:enumeration value="q_volume"/>
<xs:enumeration value="q_count"/>
<xs:enumeration value="q_weight"/>
<xs:enumeration value="q_time"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcStateEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="readwrite"/>
<xs:enumeration value="readonly"/>
<xs:enumeration value="locked"/>
<xs:enumeration value="readwritelocked"/>
<xs:enumeration value="readonlylocked"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcSwitchingDeviceTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="contactor"/>
<xs:enumeration value="dimmerswitch"/>
<xs:enumeration value="emergencystop"/>
<xs:enumeration value="keypad"/>
<xs:enumeration value="momentaryswitch"/>
<xs:enumeration value="selectorswitch"/>
<xs:enumeration value="starter"/>
<xs:enumeration value="switchdisconnector"/>
<xs:enumeration value="toggleswitch"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcTaskTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="attendance"/>
<xs:enumeration value="construction"/>
<xs:enumeration value="demolition"/>
<xs:enumeration value="dismantle"/>
<xs:enumeration value="disposal"/>
<xs:enumeration value="installation"/>
<xs:enumeration value="logistic"/>
<xs:enumeration value="maintenance"/>
<xs:enumeration value="move"/>
<xs:enumeration value="operation"/>
<xs:enumeration value="removal"/>
<xs:enumeration value="renovation"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcTimeSeriesDataTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="continuous"/>
<xs:enumeration value="discrete"/>
<xs:enumeration value="discretebinary"/>
<xs:enumeration value="piecewisebinary"/>
<xs:enumeration value="piecewiseconstant"/>
<xs:enumeration value="piecewisecontinuous"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcTransportElementTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="elevator"/>
<xs:enumeration value="escalator"/>
<xs:enumeration value="movingwalkway"/>
<xs:enumeration value="craneway"/>
<xs:enumeration value="liftinggear"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcUnitEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="absorbeddoseunit"/>
<xs:enumeration value="amountofsubstanceunit"/>
<xs:enumeration value="areaunit"/>
<xs:enumeration value="doseequivalentunit"/>
<xs:enumeration value="electriccapacitanceunit"/>
<xs:enumeration value="electricchargeunit"/>
<xs:enumeration value="electricconductanceunit"/>
<xs:enumeration value="electriccurrentunit"/>
<xs:enumeration value="electricresistanceunit"/>
<xs:enumeration value="electricvoltageunit"/>
<xs:enumeration value="energyunit"/>
<xs:enumeration value="forceunit"/>
<xs:enumeration value="frequencyunit"/>
<xs:enumeration value="illuminanceunit"/>
<xs:enumeration value="inductanceunit"/>
<xs:enumeration value="lengthunit"/>
<xs:enumeration value="luminousfluxunit"/>
<xs:enumeration value="luminousintensityunit"/>
<xs:enumeration value="magneticfluxdensityunit"/>
<xs:enumeration value="magneticfluxunit"/>
<xs:enumeration value="massunit"/>
<xs:enumeration value="planeangleunit"/>
<xs:enumeration value="powerunit"/>
<xs:enumeration value="pressureunit"/>
<xs:enumeration value="radioactivityunit"/>
<xs:enumeration value="solidangleunit"/>
<xs:enumeration value="thermodynamictemperatureunit"/>
<xs:enumeration value="timeunit"/>
<xs:enumeration value="volumeunit"/>
<xs:enumeration value="userdefined"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcUnitaryControlElementTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="alarmpanel"/>
<xs:enumeration value="controlpanel"/>
<xs:enumeration value="gasdetectionpanel"/>
<xs:enumeration value="indicatorpanel"/>
<xs:enumeration value="mimicpanel"/>
<xs:enumeration value="humidistat"/>
<xs:enumeration value="thermostat"/>
<xs:enumeration value="weatherstation"/>
<xs:enumeration value="userdefined"/>
<xs:enumeration value="notdefined"/>
</xs:restriction>
</xs:simpleType>
<!-- simple type declarations (for TYPE defined data type definitions) -->
<xs:simpleType name="IfcAreaMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcBoolean">
<xs:restriction base="xs:boolean"/>
</xs:simpleType>
<xs:simpleType name="IfcCountMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcDate">
<xs:restriction base="xs:normalizedString"/>
</xs:simpleType>
<xs:simpleType name="IfcDateTime">
<xs:restriction base="xs:normalizedString"/>
</xs:simpleType>
<xs:simpleType name="IfcDayInMonthNumber">
<xs:restriction base="xs:long"/>
</xs:simpleType>
<xs:simpleType name="IfcDayInWeekNumber">
<xs:restriction base="xs:long"/>
</xs:simpleType>
<xs:simpleType name="IfcDimensionCount">
<xs:restriction base="xs:long"/>
</xs:simpleType>
<xs:simpleType name="IfcDuration">
<xs:restriction base="xs:normalizedString"/>
</xs:simpleType>
<xs:simpleType name="IfcElectricConductanceMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcElectricCurrentMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcElectricVoltageMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcForceMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcGloballyUniqueId">
<xs:restriction base="xs:normalizedString">
<xs:minLength value="22"/>
<xs:maxLength value="22"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcIdentifier">
<xs:restriction base="xs:normalizedString">
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcIlluminanceMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcInteger">
<xs:restriction base="xs:long"/>
</xs:simpleType>
<xs:simpleType name="IfcIonConcentrationMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcLabel">
<xs:restriction base="xs:normalizedString">
<xs:maxLength value="255"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IfcLengthMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcLinearVelocityMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcLogical">
<xs:restriction base="ifc:logical"/>
</xs:simpleType>
<xs:simpleType name="IfcMassMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcMonthInYearNumber">
<xs:restriction base="xs:long"/>
</xs:simpleType>
<xs:simpleType name="IfcNormalisedRatioMeasure">
<xs:restriction base="ifc:IfcRatioMeasure"/>
</xs:simpleType>
<xs:simpleType name="IfcPHMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcPlaneAngleMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcPositiveLengthMeasure">
<xs:restriction base="ifc:IfcLengthMeasure"/>
</xs:simpleType>
<xs:simpleType name="IfcPositiveRatioMeasure">
<xs:restriction base="ifc:IfcRatioMeasure"/>
</xs:simpleType>
<xs:simpleType name="IfcPowerMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcPressureMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcRadioActivityMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcRatioMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcReal">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcSoundPressureMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcTemperatureRateOfChangeMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcText">
<xs:restriction base="xs:normalizedString"/>
</xs:simpleType>
<xs:simpleType name="IfcThermalConductivityMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcThermodynamicTemperatureMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcTime">
<xs:restriction base="xs:normalizedString"/>
</xs:simpleType>
<xs:simpleType name="IfcTimeMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcTimeStamp">
<xs:restriction base="xs:long"/>
</xs:simpleType>
<xs:simpleType name="IfcTorqueMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<xs:simpleType name="IfcURIReference">
<xs:restriction base="xs:normalizedString"/>
</xs:simpleType>
<xs:simpleType name="IfcVolumetricFlowRateMeasure">
<xs:restriction base="xs:double"/>
</xs:simpleType>
<!-- base entity and entity attribute declaration (for embeded base schema definitions) -->
<xs:element name="Entity" type="ifc:Entity" abstract="true" nillable="true"/>
<xs:complexType name="Entity" abstract="true">
<xs:attribute name="href" type="xs:anyURI" use="optional"/>
<xs:attribute name="ref" type="xs:IDREF" use="optional"/>
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:complexType>
<!-- base global attribute declaration (for embeded base schema definitions) -->
<xs:attributeGroup name="instanceAttributes">
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="path" type="xs:NMTOKENS" use="optional"/>
<xs:attribute name="pos" use="optional">
<xs:simpleType>
<xs:restriction>
<xs:simpleType>
<xs:list itemType="xs:integer"/>
</xs:simpleType>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:attribute name="arraySize">
<xs:simpleType>
<xs:restriction>
<xs:simpleType>
<xs:list itemType="xs:integer"/>
</xs:simpleType>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="itemType">
<xs:simpleType>
<xs:list itemType="xs:QName"/>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="cType">
<xs:simpleType>
<xs:list itemType="ifc:aggregateType"/>
</xs:simpleType>
</xs:attribute>
<xs:simpleType name="aggregateType">
<xs:restriction base="xs:normalizedString">
<xs:enumeration value="array"/>
<xs:enumeration value="list"/>
<xs:enumeration value="set"/>
<xs:enumeration value="bag"/>
<xs:enumeration value="array-unique"/>
<xs:enumeration value="array-optional"/>
<xs:enumeration value="array-optional-unique"/>
<xs:enumeration value="list-unique"/>
</xs:restriction>
</xs:simpleType>
<!-- base global simple type declaration (for embeded base schema definitions) -->
<xs:complexType name="hexBinary">
<xs:simpleContent>
<xs:extension base="xs:hexBinary">
<xs:attribute name="extraBits" type="xs:integer" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="logical">
<xs:restriction base="xs:normalizedString">
<xs:enumeration value="false"/>
<xs:enumeration value="true"/>
<xs:enumeration value="unknown"/>
</xs:restriction>
</xs:simpleType>
<!-- base global wrapper declaration for atomic simple types (for embeded base schema definitions) -->
<xs:element name="IfcAreaMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcAreaMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcBoolean-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcBoolean">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcCountMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcCountMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcDate-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcDate">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcDateTime-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcDateTime">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcDuration-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcDuration">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcElectricConductanceMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcElectricConductanceMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcElectricCurrentMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcElectricCurrentMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcElectricVoltageMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcElectricVoltageMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcForceMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcForceMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcIdentifier-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcIdentifier">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcIlluminanceMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcIlluminanceMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcInteger-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcInteger">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcIonConcentrationMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcIonConcentrationMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcLabel-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcLabel">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcLengthMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcLengthMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcLinearVelocityMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcLinearVelocityMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcLogical-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcLogical">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcMassMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcMassMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcNormalisedRatioMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcNormalisedRatioMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcPHMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcPHMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcPlaneAngleMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcPlaneAngleMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcPositiveLengthMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcPositiveLengthMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcPositiveRatioMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcPositiveRatioMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcPowerMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcPowerMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcPressureMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcPressureMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcRadioActivityMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcRadioActivityMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcRatioMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcRatioMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcReal-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcReal">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcSoundPressureMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcSoundPressureMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcTemperatureRateOfChangeMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcTemperatureRateOfChangeMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcText-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcText">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcThermalConductivityMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcThermalConductivityMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcThermodynamicTemperatureMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcThermodynamicTemperatureMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcTime-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcTime">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcTimeMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcTimeMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcTimeStamp-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcTimeStamp">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcTorqueMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcTorqueMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="IfcVolumetricFlowRateMeasure-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="ifc:IfcVolumetricFlowRateMeasure">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="double-wrapper" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attributeGroup ref="ifc:instanceAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>