<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ifc="http://www.buildingsmart-tech.org/ifcXML/MVD4/WSie" targetNamespace="http://www.buildingsmart-tech.org/ifcXML/MVD4/WSie" elementFormDefault="qualified" attributeFormDefault="unqualified" >
<!-- created with IFCDOC 5.6 at buildingsmart-tech.org -->
	<!-- root element declaration (for SCHEMA definitions) -->
	<xs:element name="uos" type="ifc:uos" abstract="true"/>
    <xs:simpleType name="Seq-anyURI">
        <xs:list itemType="xs:anyURI"/>
    </xs:simpleType>
	<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="IfcActor" type="ifc:IfcActor" substitutionGroup="ifc:IfcObject" nillable="true"/>
	<xs:complexType name="IfcActor">
		<xs:complexContent>
			<xs:extension base="ifc:IfcObject">
				<xs:sequence>
					<xs:element name="TheActor">
						<xs:complexType>
							<xs:group ref="ifc:IfcActorSelect"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcActorRole" type="ifc:IfcActorRole" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcActorRole">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:attribute name="Role" type="ifc:IfcRoleEnum" use="optional"/>
				<xs:attribute name="UserDefinedRole" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcAddress" type="ifc:IfcAddress" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcAddress" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcAdvancedBrep" type="ifc:IfcAdvancedBrep" substitutionGroup="ifc:IfcManifoldSolidBrep" nillable="true"/>
	<xs:complexType name="IfcAdvancedBrep">
		<xs:complexContent>
			<xs:extension base="ifc:IfcManifoldSolidBrep"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcAnnotationFillArea" type="ifc:IfcAnnotationFillArea" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcAnnotationFillArea">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem">
				<xs:sequence>
					<xs:element name="OuterBoundary" type="ifc:IfcCurve" nillable="true"/>
				</xs:sequence>
			</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="IfcAppliedValue" type="ifc:IfcAppliedValue" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcAppliedValue">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="AppliedValue" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:group ref="ifc:IfcAppliedValueSelect"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="UnitBasis" type="ifc:IfcMeasureWithUnit" nillable="true" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcAxis1Placement" type="ifc:IfcAxis1Placement" substitutionGroup="ifc:IfcPlacement" nillable="true"/>
	<xs:complexType name="IfcAxis1Placement">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPlacement"/>
		</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:sequence>
					<xs:element name="Axis" type="ifc:IfcDirection" nillable="true" minOccurs="0"/>
					<xs:element name="RefDirection" type="ifc:IfcDirection" nillable="true" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBeam" type="ifc:IfcBeam" substitutionGroup="ifc:IfcBuildingElement" nillable="true"/>
	<xs:complexType name="IfcBeam">
		<xs:complexContent>
			<xs:extension base="ifc:IfcBuildingElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBoiler" type="ifc:IfcBoiler" substitutionGroup="ifc:IfcEnergyConversionDevice" nillable="true"/>
	<xs:complexType name="IfcBoiler">
		<xs:complexContent>
			<xs:extension base="ifc:IfcEnergyConversionDevice"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBoilerType" type="ifc:IfcBoilerType" substitutionGroup="ifc:IfcEnergyConversionDeviceType" nillable="true"/>
	<xs:complexType name="IfcBoilerType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcEnergyConversionDeviceType">
				<xs:attribute name="PredefinedType" type="ifc:IfcBoilerTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBooleanClippingResult" type="ifc:IfcBooleanClippingResult" substitutionGroup="ifc:IfcBooleanResult" nillable="true"/>
	<xs:complexType name="IfcBooleanClippingResult">
		<xs:complexContent>
			<xs:extension base="ifc:IfcBooleanResult"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBooleanResult" type="ifc:IfcBooleanResult" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcBooleanResult">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem">
				<xs:sequence>
					<xs:element name="FirstOperand">
						<xs:complexType>
							<xs:group ref="ifc:IfcBooleanOperand"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="SecondOperand">
						<xs:complexType>
							<xs:group ref="ifc:IfcBooleanOperand"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="Operator" type="ifc:IfcBooleanOperator" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBoundedCurve" type="ifc:IfcBoundedCurve" abstract="true" substitutionGroup="ifc:IfcCurve" nillable="true"/>
	<xs:complexType name="IfcBoundedCurve" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcCurve"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBoundedSurface" type="ifc:IfcBoundedSurface" abstract="true" substitutionGroup="ifc:IfcSurface" nillable="true"/>
	<xs:complexType name="IfcBoundedSurface" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSurface"/>
		</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:sequence>
					<xs:element name="BuildingAddress" type="ifc:IfcPostalAddress" nillable="true" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="ElevationOfRefHeight" type="ifc:IfcLengthMeasure" use="optional"/>
				<xs:attribute name="ElevationOfTerrain" type="ifc:IfcLengthMeasure" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBuildingElement" type="ifc:IfcBuildingElement" abstract="true" substitutionGroup="ifc:IfcElement" nillable="true"/>
	<xs:complexType name="IfcBuildingElement" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBuildingElementPart" type="ifc:IfcBuildingElementPart" substitutionGroup="ifc:IfcElementComponent" nillable="true"/>
	<xs:complexType name="IfcBuildingElementPart">
		<xs:complexContent>
			<xs:extension base="ifc:IfcElementComponent"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcBuildingElementType" type="ifc:IfcBuildingElementType" abstract="true" substitutionGroup="ifc:IfcElementType" nillable="true"/>
	<xs:complexType name="IfcBuildingElementType" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcElementType"/>
		</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:attribute name="Elevation" type="ifc:IfcLengthMeasure" 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="IfcCartesianTransformationOperator" type="ifc:IfcCartesianTransformationOperator" abstract="true" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcCartesianTransformationOperator" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem">
				<xs:sequence>
					<xs:element name="LocalOrigin" type="ifc:IfcCartesianPoint" nillable="true"/>
				</xs:sequence>
			</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:sequence>
					<xs:element name="ReferenceTokens" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcIdentifier-wrapper" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcIdentifier-wrapper"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="Source" type="ifc:IfcLabel" use="optional"/>
				<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:sequence>
					<xs:element name="ReferencedSource" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:group ref="ifc:IfcClassificationReferenceSelect"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcClosedShell" type="ifc:IfcClosedShell" substitutionGroup="ifc:IfcConnectedFaceSet" nillable="true"/>
	<xs:complexType name="IfcClosedShell">
		<xs:complexContent>
			<xs:extension base="ifc:IfcConnectedFaceSet"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConnectedFaceSet" type="ifc:IfcConnectedFaceSet" substitutionGroup="ifc:IfcTopologicalRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcConnectedFaceSet">
		<xs:complexContent>
			<xs:extension base="ifc:IfcTopologicalRepresentationItem">
				<xs:sequence>
					<xs:element name="CfsFaces">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcFace" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcFace"/>
							<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="IfcConnectionCurveGeometry" type="ifc:IfcConnectionCurveGeometry" substitutionGroup="ifc:IfcConnectionGeometry" nillable="true"/>
	<xs:complexType name="IfcConnectionCurveGeometry">
		<xs:complexContent>
			<xs:extension base="ifc:IfcConnectionGeometry">
				<xs:sequence>
					<xs:element name="CurveOnRelatingElement">
						<xs:complexType>
							<xs:group ref="ifc:IfcCurveOrEdgeCurve"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="CurveOnRelatedElement" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:group ref="ifc:IfcCurveOrEdgeCurve"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConnectionGeometry" type="ifc:IfcConnectionGeometry" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcConnectionGeometry" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConstructionProductResource" type="ifc:IfcConstructionProductResource" substitutionGroup="ifc:IfcConstructionResource" nillable="true"/>
	<xs:complexType name="IfcConstructionProductResource">
		<xs:complexContent>
			<xs:extension base="ifc:IfcConstructionResource"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConstructionResource" type="ifc:IfcConstructionResource" abstract="true" substitutionGroup="ifc:IfcResource" nillable="true"/>
	<xs:complexType name="IfcConstructionResource" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcResource">
				<xs:sequence>
					<xs:element name="BaseCosts" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcAppliedValue" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcAppliedValue"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="BaseQuantity" type="ifc:IfcPhysicalQuantity" nillable="true" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcConstructionResourceType" type="ifc:IfcConstructionResourceType" abstract="true" substitutionGroup="ifc:IfcTypeResource" nillable="true"/>
	<xs:complexType name="IfcConstructionResourceType" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcTypeResource">
				<xs:sequence>
					<xs:element name="BaseCosts" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcAppliedValue" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcAppliedValue"/>
							<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="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:sequence>
					<xs:element name="RepresentationContexts" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcRepresentationContext" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcRepresentationContext"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="UnitsInContext" type="ifc:IfcUnitAssignment" nillable="true" minOccurs="0"/>
				</xs:sequence>
			</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="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="IfcCostItem" type="ifc:IfcCostItem" substitutionGroup="ifc:IfcControl" nillable="true"/>
	<xs:complexType name="IfcCostItem">
		<xs:complexContent>
			<xs:extension base="ifc:IfcControl"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcCostSchedule" type="ifc:IfcCostSchedule" substitutionGroup="ifc:IfcControl" nillable="true"/>
	<xs:complexType name="IfcCostSchedule">
		<xs:complexContent>
			<xs:extension base="ifc:IfcControl"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcCostValue" type="ifc:IfcCostValue" substitutionGroup="ifc:IfcAppliedValue" nillable="true"/>
	<xs:complexType name="IfcCostValue">
		<xs:complexContent>
			<xs:extension base="ifc:IfcAppliedValue"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcCovering" type="ifc:IfcCovering" substitutionGroup="ifc:IfcBuildingElement" nillable="true"/>
	<xs:complexType name="IfcCovering">
		<xs:complexContent>
			<xs:extension base="ifc:IfcBuildingElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcCsgSolid" type="ifc:IfcCsgSolid" substitutionGroup="ifc:IfcSolidModel" nillable="true"/>
	<xs:complexType name="IfcCsgSolid">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSolidModel">
				<xs:sequence>
					<xs:element name="TreeRootExpression">
						<xs:complexType>
							<xs:group ref="ifc:IfcCsgSelect"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcCurve" type="ifc:IfcCurve" abstract="true" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcCurve" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcCurveStyle" type="ifc:IfcCurveStyle" substitutionGroup="ifc:IfcPresentationStyle" nillable="true"/>
	<xs:complexType name="IfcCurveStyle">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPresentationStyle"/>
		</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="IfcDistributionCircuit" type="ifc:IfcDistributionCircuit" substitutionGroup="ifc:IfcDistributionSystem" nillable="true"/>
	<xs:complexType name="IfcDistributionCircuit">
		<xs:complexContent>
			<xs:extension base="ifc:IfcDistributionSystem"/>
		</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:attribute name="FlowDirection" type="ifc:IfcFlowDirectionEnum" use="optional"/>
				<xs:attribute name="PredefinedType" type="ifc:IfcDistributionPortTypeEnum" use="optional"/>
			</xs:extension>
		</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="IfcElectricAppliance" type="ifc:IfcElectricAppliance" substitutionGroup="ifc:IfcFlowTerminal" nillable="true"/>
	<xs:complexType name="IfcElectricAppliance">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowTerminal"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcElectricApplianceType" type="ifc:IfcElectricApplianceType" substitutionGroup="ifc:IfcFlowTerminalType" nillable="true"/>
	<xs:complexType name="IfcElectricApplianceType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowTerminalType">
				<xs:attribute name="PredefinedType" type="ifc:IfcElectricApplianceTypeEnum" use="optional"/>
			</xs:extension>
		</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="IfcElementComponent" type="ifc:IfcElementComponent" abstract="true" substitutionGroup="ifc:IfcElement" nillable="true"/>
	<xs:complexType name="IfcElementComponent" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcElementQuantity" type="ifc:IfcElementQuantity" substitutionGroup="ifc:IfcQuantitySet" nillable="true"/>
	<xs:complexType name="IfcElementQuantity">
		<xs:complexContent>
			<xs:extension base="ifc:IfcQuantitySet">
				<xs:sequence>
					<xs:element name="Quantities">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcPhysicalQuantity" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcPhysicalQuantity"/>
							<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="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="IfcEnergyConversionDevice" type="ifc:IfcEnergyConversionDevice" substitutionGroup="ifc:IfcDistributionFlowElement" nillable="true"/>
	<xs:complexType name="IfcEnergyConversionDevice">
		<xs:complexContent>
			<xs:extension base="ifc:IfcDistributionFlowElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcEnergyConversionDeviceType" type="ifc:IfcEnergyConversionDeviceType" abstract="true" substitutionGroup="ifc:IfcDistributionFlowElementType" nillable="true"/>
	<xs:complexType name="IfcEnergyConversionDeviceType" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcDistributionFlowElementType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcExtendedProperties" type="ifc:IfcExtendedProperties" abstract="true" substitutionGroup="ifc:IfcPropertyAbstraction" nillable="true"/>
	<xs:complexType name="IfcExtendedProperties" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPropertyAbstraction">
				<xs:sequence>
					<xs:element name="Properties">
						<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="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:attribute name="Identification" type="ifc:IfcIdentifier" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcExtrudedAreaSolid" type="ifc:IfcExtrudedAreaSolid" substitutionGroup="ifc:IfcSweptAreaSolid" nillable="true"/>
	<xs:complexType name="IfcExtrudedAreaSolid">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSweptAreaSolid">
				<xs:sequence>
					<xs:element name="ExtrudedDirection" type="ifc:IfcDirection" nillable="true"/>
				</xs:sequence>
				<xs:attribute name="Depth" type="ifc:IfcPositiveLengthMeasure" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFace" type="ifc:IfcFace" substitutionGroup="ifc:IfcTopologicalRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcFace">
		<xs:complexContent>
			<xs:extension base="ifc:IfcTopologicalRepresentationItem">
				<xs:sequence>
					<xs:element name="Bounds">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcFaceBound" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcFaceBound"/>
							<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="IfcFaceBasedSurfaceModel" type="ifc:IfcFaceBasedSurfaceModel" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcFaceBasedSurfaceModel">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem">
				<xs:sequence>
					<xs:element name="FbsmFaces">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcConnectedFaceSet" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcConnectedFaceSet"/>
							<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="IfcFaceBound" type="ifc:IfcFaceBound" substitutionGroup="ifc:IfcTopologicalRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcFaceBound">
		<xs:complexContent>
			<xs:extension base="ifc:IfcTopologicalRepresentationItem">
				<xs:sequence>
					<xs:element name="Bound" type="ifc:IfcLoop" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFacetedBrep" type="ifc:IfcFacetedBrep" substitutionGroup="ifc:IfcManifoldSolidBrep" nillable="true"/>
	<xs:complexType name="IfcFacetedBrep">
		<xs:complexContent>
			<xs:extension base="ifc:IfcManifoldSolidBrep"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFeatureElement" type="ifc:IfcFeatureElement" abstract="true" substitutionGroup="ifc:IfcElement" nillable="true"/>
	<xs:complexType name="IfcFeatureElement" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFeatureElementSubtraction" type="ifc:IfcFeatureElementSubtraction" abstract="true" substitutionGroup="ifc:IfcFeatureElement" nillable="true"/>
	<xs:complexType name="IfcFeatureElementSubtraction" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFeatureElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFillAreaStyle" type="ifc:IfcFillAreaStyle" substitutionGroup="ifc:IfcPresentationStyle" nillable="true"/>
	<xs:complexType name="IfcFillAreaStyle">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPresentationStyle">
				<xs:sequence>
					<xs:element name="FillStyles">
						<xs:complexType>
							<xs:group ref="ifc:IfcFillStyleSelect" maxOccurs="unbounded"/>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcFillStyleSelect"/>
							<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="IfcFilter" type="ifc:IfcFilter" substitutionGroup="ifc:IfcFlowTreatmentDevice" nillable="true"/>
	<xs:complexType name="IfcFilter">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowTreatmentDevice"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFilterType" type="ifc:IfcFilterType" substitutionGroup="ifc:IfcFlowTreatmentDeviceType" nillable="true"/>
	<xs:complexType name="IfcFilterType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowTreatmentDeviceType">
				<xs:attribute name="PredefinedType" type="ifc:IfcFilterTypeEnum" use="optional"/>
			</xs:extension>
		</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="IfcFlowFitting" type="ifc:IfcFlowFitting" substitutionGroup="ifc:IfcDistributionFlowElement" nillable="true"/>
	<xs:complexType name="IfcFlowFitting">
		<xs:complexContent>
			<xs:extension base="ifc:IfcDistributionFlowElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFlowFittingType" type="ifc:IfcFlowFittingType" abstract="true" substitutionGroup="ifc:IfcDistributionFlowElementType" nillable="true"/>
	<xs:complexType name="IfcFlowFittingType" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcDistributionFlowElementType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFlowMeter" type="ifc:IfcFlowMeter" substitutionGroup="ifc:IfcFlowController" nillable="true"/>
	<xs:complexType name="IfcFlowMeter">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowController"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFlowMeterType" type="ifc:IfcFlowMeterType" substitutionGroup="ifc:IfcFlowControllerType" nillable="true"/>
	<xs:complexType name="IfcFlowMeterType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowControllerType">
				<xs:attribute name="PredefinedType" type="ifc:IfcFlowMeterTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFlowMovingDevice" type="ifc:IfcFlowMovingDevice" substitutionGroup="ifc:IfcDistributionFlowElement" nillable="true"/>
	<xs:complexType name="IfcFlowMovingDevice">
		<xs:complexContent>
			<xs:extension base="ifc:IfcDistributionFlowElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFlowMovingDeviceType" type="ifc:IfcFlowMovingDeviceType" abstract="true" substitutionGroup="ifc:IfcDistributionFlowElementType" nillable="true"/>
	<xs:complexType name="IfcFlowMovingDeviceType" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcDistributionFlowElementType"/>
		</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="IfcFlowTreatmentDevice" type="ifc:IfcFlowTreatmentDevice" substitutionGroup="ifc:IfcDistributionFlowElement" nillable="true"/>
	<xs:complexType name="IfcFlowTreatmentDevice">
		<xs:complexContent>
			<xs:extension base="ifc:IfcDistributionFlowElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFlowTreatmentDeviceType" type="ifc:IfcFlowTreatmentDeviceType" abstract="true" substitutionGroup="ifc:IfcDistributionFlowElementType" nillable="true"/>
	<xs:complexType name="IfcFlowTreatmentDeviceType" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcDistributionFlowElementType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFurnishingElement" type="ifc:IfcFurnishingElement" substitutionGroup="ifc:IfcElement" nillable="true"/>
	<xs:complexType name="IfcFurnishingElement">
		<xs:complexContent>
			<xs:extension base="ifc:IfcElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcFurnishingElementType" type="ifc:IfcFurnishingElementType" substitutionGroup="ifc:IfcElementType" nillable="true"/>
	<xs:complexType name="IfcFurnishingElementType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcElementType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcGeometricCurveSet" type="ifc:IfcGeometricCurveSet" substitutionGroup="ifc:IfcGeometricSet" nillable="true"/>
	<xs:complexType name="IfcGeometricCurveSet">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricSet"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcGeometricRepresentationContext" type="ifc:IfcGeometricRepresentationContext" substitutionGroup="ifc:IfcRepresentationContext" nillable="true"/>
	<xs:complexType name="IfcGeometricRepresentationContext">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRepresentationContext">
				<xs:sequence>
					<xs:element name="WorldCoordinateSystem" minOccurs="0">
						<xs:complexType>
							<xs:group ref="ifc:IfcAxis2Placement"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="TrueNorth" type="ifc:IfcDirection" nillable="true" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="CoordinateSpaceDimension" type="ifc:IfcDimensionCount" use="optional"/>
			</xs:extension>
		</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="IfcGeometricSet" type="ifc:IfcGeometricSet" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcGeometricSet">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem">
				<xs:sequence>
					<xs:element name="Elements">
						<xs:complexType>
							<xs:group ref="ifc:IfcGeometricSetSelect" maxOccurs="unbounded"/>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcGeometricSetSelect"/>
							<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="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="IfcLine" type="ifc:IfcLine" substitutionGroup="ifc:IfcCurve" nillable="true"/>
	<xs:complexType name="IfcLine">
		<xs:complexContent>
			<xs:extension base="ifc:IfcCurve">
				<xs:sequence>
					<xs:element name="Pnt" type="ifc:IfcCartesianPoint" nillable="true"/>
					<xs:element name="Dir" type="ifc:IfcVector" nillable="true"/>
				</xs:sequence>
			</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="PlacementRelTo" type="ifc:IfcObjectPlacement" nillable="true" minOccurs="0"/>
					<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="IfcLoop" type="ifc:IfcLoop" substitutionGroup="ifc:IfcTopologicalRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcLoop">
		<xs:complexContent>
			<xs:extension base="ifc:IfcTopologicalRepresentationItem"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcManifoldSolidBrep" type="ifc:IfcManifoldSolidBrep" abstract="true" substitutionGroup="ifc:IfcSolidModel" nillable="true"/>
	<xs:complexType name="IfcManifoldSolidBrep" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSolidModel">
				<xs:sequence>
					<xs:element name="Outer" type="ifc:IfcClosedShell" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcMappedItem" type="ifc:IfcMappedItem" substitutionGroup="ifc:IfcRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcMappedItem">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRepresentationItem">
				<xs:sequence>
					<xs:element name="MappingSource" type="ifc:IfcRepresentationMap" nillable="true"/>
					<xs:element name="MappingTarget" type="ifc:IfcCartesianTransformationOperator" nillable="true"/>
				</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:sequence>
					<xs:element name="HasRepresentation" type="ifc:IfcMaterialDefinitionRepresentation" nillable="true" minOccurs="0" maxOccurs="1"/>
				</xs:sequence>
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcMaterialConstituent" type="ifc:IfcMaterialConstituent" substitutionGroup="ifc:IfcMaterialDefinition" nillable="true"/>
	<xs:complexType name="IfcMaterialConstituent">
		<xs:complexContent>
			<xs:extension base="ifc:IfcMaterialDefinition">
				<xs:sequence>
					<xs:element name="Material" type="ifc:IfcMaterial" nillable="true"/>
				</xs:sequence>
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcMaterialConstituentSet" type="ifc:IfcMaterialConstituentSet" substitutionGroup="ifc:IfcMaterialDefinition" nillable="true"/>
	<xs:complexType name="IfcMaterialConstituentSet">
		<xs:complexContent>
			<xs:extension base="ifc:IfcMaterialDefinition">
				<xs:sequence>
					<xs:element name="MaterialConstituents" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcMaterialConstituent" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcMaterialConstituent"/>
							<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="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:sequence>
					<xs:element name="HasProperties" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcMaterialProperties" minOccurs="0" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcMaterialProperties"/>
							<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="IfcMaterialDefinitionRepresentation" type="ifc:IfcMaterialDefinitionRepresentation" substitutionGroup="ifc:IfcProductRepresentation" nillable="true"/>
	<xs:complexType name="IfcMaterialDefinitionRepresentation">
		<xs:complexContent>
			<xs:extension base="ifc:IfcProductRepresentation"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcMaterialLayer" type="ifc:IfcMaterialLayer" substitutionGroup="ifc:IfcMaterialDefinition" nillable="true"/>
	<xs:complexType name="IfcMaterialLayer">
		<xs:complexContent>
			<xs:extension base="ifc:IfcMaterialDefinition">
				<xs:sequence>
					<xs:element name="Material" type="ifc:IfcMaterial" nillable="true" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="LayerThickness" type="ifc:IfcNonNegativeLengthMeasure" use="optional"/>
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcMaterialLayerSet" type="ifc:IfcMaterialLayerSet" substitutionGroup="ifc:IfcMaterialDefinition" nillable="true"/>
	<xs:complexType name="IfcMaterialLayerSet">
		<xs:complexContent>
			<xs:extension base="ifc:IfcMaterialDefinition">
				<xs:sequence>
					<xs:element name="MaterialLayers">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcMaterialLayer" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcMaterialLayer"/>
							<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="IfcMaterialLayerSetUsage" type="ifc:IfcMaterialLayerSetUsage" substitutionGroup="ifc:IfcMaterialUsageDefinition" nillable="true"/>
	<xs:complexType name="IfcMaterialLayerSetUsage">
		<xs:complexContent>
			<xs:extension base="ifc:IfcMaterialUsageDefinition">
				<xs:sequence>
					<xs:element name="ForLayerSet" type="ifc:IfcMaterialLayerSet" nillable="true"/>
				</xs:sequence>
				<xs:attribute name="LayerSetDirection" type="ifc:IfcLayerSetDirectionEnum" use="optional"/>
				<xs:attribute name="DirectionSense" type="ifc:IfcDirectionSenseEnum" use="optional"/>
				<xs:attribute name="OffsetFromReferenceLine" type="ifc:IfcLengthMeasure" use="optional"/>
			</xs:extension>
		</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="Material" type="ifc:IfcMaterial" nillable="true" minOccurs="0"/>
					<xs:element name="Profile" type="ifc:IfcProfileDef" nillable="true"/>
				</xs:sequence>
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
			</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="IfcMaterialProperties" type="ifc:IfcMaterialProperties" substitutionGroup="ifc:IfcExtendedProperties" nillable="true"/>
	<xs:complexType name="IfcMaterialProperties">
		<xs:complexContent>
			<xs:extension base="ifc:IfcExtendedProperties"/>
		</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="IfcMember" type="ifc:IfcMember" substitutionGroup="ifc:IfcBuildingElement" nillable="true"/>
	<xs:complexType name="IfcMember">
		<xs:complexContent>
			<xs:extension base="ifc:IfcBuildingElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcMemberType" type="ifc:IfcMemberType" substitutionGroup="ifc:IfcBuildingElementType" nillable="true"/>
	<xs:complexType name="IfcMemberType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcBuildingElementType">
				<xs:attribute name="PredefinedType" type="ifc:IfcMemberTypeEnum" 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="IfcOccupant" type="ifc:IfcOccupant" substitutionGroup="ifc:IfcActor" nillable="true"/>
	<xs:complexType name="IfcOccupant">
		<xs:complexContent>
			<xs:extension base="ifc:IfcActor"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcOpeningElement" type="ifc:IfcOpeningElement" substitutionGroup="ifc:IfcFeatureElementSubtraction" nillable="true"/>
	<xs:complexType name="IfcOpeningElement">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFeatureElementSubtraction"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcOpeningStandardCase" type="ifc:IfcOpeningStandardCase" substitutionGroup="ifc:IfcOpeningElement" nillable="true"/>
	<xs:complexType name="IfcOpeningStandardCase">
		<xs:complexContent>
			<xs:extension base="ifc:IfcOpeningElement"/>
		</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:sequence>
					<xs:element name="Roles" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcActorRole" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcActorRole"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="Addresses" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcAddress" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcAddress"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="Identification" type="ifc:IfcIdentifier" use="optional"/>
				<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="State" type="ifc:IfcStateEnum" use="optional"/>
				<xs:attribute name="ChangeAction" type="ifc:IfcChangeActionEnum" use="optional"/>
				<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="IfcPhysicalQuantity" type="ifc:IfcPhysicalQuantity" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcPhysicalQuantity" abstract="true">
		<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="IfcPhysicalSimpleQuantity" type="ifc:IfcPhysicalSimpleQuantity" abstract="true" substitutionGroup="ifc:IfcPhysicalQuantity" nillable="true"/>
	<xs:complexType name="IfcPhysicalSimpleQuantity" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPhysicalQuantity"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPipeFitting" type="ifc:IfcPipeFitting" substitutionGroup="ifc:IfcFlowFitting" nillable="true"/>
	<xs:complexType name="IfcPipeFitting">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowFitting"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPipeFittingType" type="ifc:IfcPipeFittingType" substitutionGroup="ifc:IfcFlowFittingType" nillable="true"/>
	<xs:complexType name="IfcPipeFittingType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowFittingType">
				<xs:attribute name="PredefinedType" type="ifc:IfcPipeFittingTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPipeSegment" type="ifc:IfcPipeSegment" substitutionGroup="ifc:IfcFlowSegment" nillable="true"/>
	<xs:complexType name="IfcPipeSegment">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowSegment"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPipeSegmentType" type="ifc:IfcPipeSegmentType" substitutionGroup="ifc:IfcFlowSegmentType" nillable="true"/>
	<xs:complexType name="IfcPipeSegmentType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowSegmentType">
				<xs:attribute name="PredefinedType" type="ifc:IfcPipeSegmentTypeEnum" use="optional"/>
			</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="IfcPlate" type="ifc:IfcPlate" substitutionGroup="ifc:IfcBuildingElement" nillable="true"/>
	<xs:complexType name="IfcPlate">
		<xs:complexContent>
			<xs:extension base="ifc:IfcBuildingElement"/>
		</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="IfcPolyline" type="ifc:IfcPolyline" substitutionGroup="ifc:IfcBoundedCurve" nillable="true"/>
	<xs:complexType name="IfcPolyline">
		<xs:complexContent>
			<xs:extension base="ifc:IfcBoundedCurve">
				<xs:sequence>
					<xs:element name="Points">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcCartesianPoint" minOccurs="2" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcCartesianPoint"/>
							<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="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="IfcPostalAddress" type="ifc:IfcPostalAddress" substitutionGroup="ifc:IfcAddress" nillable="true"/>
	<xs:complexType name="IfcPostalAddress">
		<xs:complexContent>
			<xs:extension base="ifc:IfcAddress">
				<xs:sequence>
					<xs:element name="AddressLines" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcLabel-wrapper" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcLabel-wrapper"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="Town" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="Region" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="PostalCode" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="Country" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPresentationLayerAssignment" type="ifc:IfcPresentationLayerAssignment" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcPresentationLayerAssignment">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="AssignedItems">
						<xs:complexType>
							<xs:group ref="ifc:IfcLayeredItem" maxOccurs="unbounded"/>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcLayeredItem"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<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="IfcPresentationStyle" type="ifc:IfcPresentationStyle" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcPresentationStyle" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity"/>
		</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:sequence>
					<xs:element name="ObjectPlacement" type="ifc:IfcObjectPlacement" nillable="true" minOccurs="0"/>
					<xs:element name="Representation" type="ifc:IfcProductRepresentation" nillable="true" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcProductDefinitionShape" type="ifc:IfcProductDefinitionShape" substitutionGroup="ifc:IfcProductRepresentation" nillable="true"/>
	<xs:complexType name="IfcProductDefinitionShape">
		<xs:complexContent>
			<xs:extension base="ifc:IfcProductRepresentation">
				<xs:sequence>
					<xs:element name="HasShapeAspects" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcShapeAspect" minOccurs="0" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcShapeAspect"/>
							<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="IfcProductRepresentation" type="ifc:IfcProductRepresentation" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcProductRepresentation" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="Representations">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcRepresentation" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcRepresentation"/>
							<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="IfcProfileDef" type="ifc:IfcProfileDef" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcProfileDef">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="HasProperties" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcProfileProperties" minOccurs="0" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcProfileProperties"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="ProfileType" type="ifc:IfcProfileTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcProfileProperties" type="ifc:IfcProfileProperties" substitutionGroup="ifc:IfcExtendedProperties" nillable="true"/>
	<xs:complexType name="IfcProfileProperties">
		<xs:complexContent>
			<xs:extension base="ifc:IfcExtendedProperties"/>
		</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="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="IfcPropertyReferenceValue" type="ifc:IfcPropertyReferenceValue" substitutionGroup="ifc:IfcSimpleProperty" nillable="true"/>
	<xs:complexType name="IfcPropertyReferenceValue">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSimpleProperty">
				<xs:sequence>
					<xs:element name="PropertyReference" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:group ref="ifc:IfcObjectReferenceSelect"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</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="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="IfcPump" type="ifc:IfcPump" substitutionGroup="ifc:IfcFlowMovingDevice" nillable="true"/>
	<xs:complexType name="IfcPump">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowMovingDevice"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcPumpType" type="ifc:IfcPumpType" substitutionGroup="ifc:IfcFlowMovingDeviceType" nillable="true"/>
	<xs:complexType name="IfcPumpType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowMovingDeviceType">
				<xs:attribute name="PredefinedType" type="ifc:IfcPumpTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcQuantityCount" type="ifc:IfcQuantityCount" substitutionGroup="ifc:IfcPhysicalSimpleQuantity" nillable="true"/>
	<xs:complexType name="IfcQuantityCount">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPhysicalSimpleQuantity">
				<xs:attribute name="CountValue" type="ifc:IfcCountMeasure" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcQuantitySet" type="ifc:IfcQuantitySet" abstract="true" substitutionGroup="ifc:IfcPropertySetDefinition" nillable="true"/>
	<xs:complexType name="IfcQuantitySet" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPropertySetDefinition"/>
		</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:sequence>
					<xs:element name="TimePeriods" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcTimePeriod" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcTimePeriod"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="RecurrenceType" type="ifc:IfcRecurrenceTypeEnum" use="optional"/>
			</xs:extension>
		</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="IfcRelAssignsToActor" type="ifc:IfcRelAssignsToActor" substitutionGroup="ifc:IfcRelAssigns" nillable="true"/>
	<xs:complexType name="IfcRelAssignsToActor">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelAssigns">
				<xs:sequence>
					<xs:element name="RelatingActor" type="ifc:IfcActor" nillable="true"/>
				</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="IfcRelAssignsToProcess" type="ifc:IfcRelAssignsToProcess" substitutionGroup="ifc:IfcRelAssigns" nillable="true"/>
	<xs:complexType name="IfcRelAssignsToProcess">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelAssigns">
				<xs:sequence>
					<xs:element name="RelatingProcess">
						<xs:complexType>
							<xs:group ref="ifc:IfcProcessSelect"/>
						</xs:complexType>
					</xs:element>
				</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="IfcRelAssignsToResource" type="ifc:IfcRelAssignsToResource" substitutionGroup="ifc:IfcRelAssigns" nillable="true"/>
	<xs:complexType name="IfcRelAssignsToResource">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelAssigns">
				<xs:sequence>
					<xs:element name="RelatingResource">
						<xs:complexType>
							<xs:group ref="ifc:IfcResourceSelect"/>
						</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="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="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="IfcRelConnectsElements" type="ifc:IfcRelConnectsElements" substitutionGroup="ifc:IfcRelConnects" nillable="true"/>
	<xs:complexType name="IfcRelConnectsElements">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelConnects">
				<xs:sequence>
					<xs:element name="ConnectionGeometry" type="ifc:IfcConnectionGeometry" nillable="true" minOccurs="0"/>
					<xs:element name="RelatingElement" type="ifc:IfcElement" nillable="true"/>
					<xs:element name="RelatedElement" type="ifc:IfcElement" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelConnectsPathElements" type="ifc:IfcRelConnectsPathElements" substitutionGroup="ifc:IfcRelConnectsElements" nillable="true"/>
	<xs:complexType name="IfcRelConnectsPathElements">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelConnectsElements">
				<xs:attribute name="RelatedConnectionType" type="ifc:IfcConnectionTypeEnum" use="optional"/>
				<xs:attribute name="RelatingConnectionType" type="ifc:IfcConnectionTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelConnectsPortToElement" type="ifc:IfcRelConnectsPortToElement" substitutionGroup="ifc:IfcRelConnects" nillable="true"/>
	<xs:complexType name="IfcRelConnectsPortToElement">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelConnects">
				<xs:sequence>
					<xs:element name="RelatingPort" type="ifc:IfcPort" nillable="true"/>
					<xs:element name="RelatedElement" type="ifc:IfcDistributionElement" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</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:element name="RealizingElement" type="ifc:IfcElement" nillable="true" minOccurs="0"/>
				</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="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="IfcRelInterferesElements" type="ifc:IfcRelInterferesElements" substitutionGroup="ifc:IfcRelConnects" nillable="true"/>
	<xs:complexType name="IfcRelInterferesElements">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelConnects">
				<xs:sequence>
					<xs:element name="RelatingElement" type="ifc:IfcElement" nillable="true"/>
					<xs:element name="RelatedElement" type="ifc:IfcElement" 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="IfcRelSpaceBoundary" type="ifc:IfcRelSpaceBoundary" substitutionGroup="ifc:IfcRelConnects" nillable="true"/>
	<xs:complexType name="IfcRelSpaceBoundary">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelConnects">
				<xs:sequence>
					<xs:element name="RelatingSpace">
						<xs:complexType>
							<xs:group ref="ifc:IfcSpaceBoundarySelect"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="RelatedBuildingElement" type="ifc:IfcElement" nillable="true"/>
				</xs:sequence>
				<xs:attribute name="PhysicalOrVirtualBoundary" type="ifc:IfcPhysicalOrVirtualEnum" use="optional"/>
				<xs:attribute name="InternalOrExternalBoundary" type="ifc:IfcInternalOrExternalEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRelVoidsElement" type="ifc:IfcRelVoidsElement" substitutionGroup="ifc:IfcRelDecomposes" nillable="true"/>
	<xs:complexType name="IfcRelVoidsElement">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRelDecomposes">
				<xs:sequence>
					<xs:element name="RelatingBuildingElement" type="ifc:IfcElement" nillable="true"/>
					<xs:element name="RelatedOpeningElement" type="ifc:IfcFeatureElementSubtraction" nillable="true"/>
				</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="IfcRepresentation" type="ifc:IfcRepresentation" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcRepresentation" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="ContextOfItems" type="ifc:IfcRepresentationContext" nillable="true"/>
					<xs:element name="Items">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcRepresentationItem" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcRepresentationItem"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="RepresentationIdentifier" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="RepresentationType" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRepresentationContext" type="ifc:IfcRepresentationContext" abstract="true" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcRepresentationContext" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:attribute name="ContextIdentifier" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="ContextType" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</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:sequence>
					<xs:element name="StyledByItem" type="ifc:IfcStyledItem" nillable="true" minOccurs="0" maxOccurs="1"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRepresentationMap" type="ifc:IfcRepresentationMap" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcRepresentationMap">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="MappingOrigin">
						<xs:complexType>
							<xs:group ref="ifc:IfcAxis2Placement"/>
						</xs:complexType>
					</xs:element>
					<xs:element name="MappedRepresentation" type="ifc:IfcRepresentation" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcResource" type="ifc:IfcResource" abstract="true" substitutionGroup="ifc:IfcObject" nillable="true"/>
	<xs:complexType name="IfcResource" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcObject"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcRevolvedAreaSolid" type="ifc:IfcRevolvedAreaSolid" substitutionGroup="ifc:IfcSweptAreaSolid" nillable="true"/>
	<xs:complexType name="IfcRevolvedAreaSolid">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSweptAreaSolid">
				<xs:sequence>
					<xs:element name="Axis" type="ifc:IfcAxis1Placement" nillable="true"/>
				</xs:sequence>
				<xs:attribute name="Angle" type="ifc:IfcPlaneAngleMeasure" use="optional"/>
			</xs:extension>
		</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:sequence>
					<xs:element name="OwnerHistory" type="ifc:IfcOwnerHistory" nillable="true" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="GlobalId" type="ifc:IfcGloballyUniqueId" use="optional"/>
				<xs:attribute name="Name" type="ifc:IfcLabel" use="optional"/>
				<xs:attribute name="Description" type="ifc:IfcText" 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="Prefix" type="ifc:IfcSIPrefix" use="optional"/>
				<xs:attribute name="Name" type="ifc:IfcSIUnitName" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSanitaryTerminal" type="ifc:IfcSanitaryTerminal" substitutionGroup="ifc:IfcFlowTerminal" nillable="true"/>
	<xs:complexType name="IfcSanitaryTerminal">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowTerminal"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSanitaryTerminalType" type="ifc:IfcSanitaryTerminalType" substitutionGroup="ifc:IfcFlowTerminalType" nillable="true"/>
	<xs:complexType name="IfcSanitaryTerminalType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowTerminalType">
				<xs:attribute name="PredefinedType" type="ifc:IfcSanitaryTerminalTypeEnum" 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="IfcShapeAspect" type="ifc:IfcShapeAspect" substitutionGroup="ifc:Entity" nillable="true"/>
	<xs:complexType name="IfcShapeAspect">
		<xs:complexContent>
			<xs:extension base="ifc:Entity">
				<xs:sequence>
					<xs:element name="ShapeRepresentations">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcShapeModel" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcShapeModel"/>
							<xs:attribute ref="ifc:cType" fixed="list"/>
							<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="IfcShapeModel" type="ifc:IfcShapeModel" abstract="true" substitutionGroup="ifc:IfcRepresentation" nillable="true"/>
	<xs:complexType name="IfcShapeModel" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRepresentation"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcShapeRepresentation" type="ifc:IfcShapeRepresentation" substitutionGroup="ifc:IfcShapeModel" nillable="true"/>
	<xs:complexType name="IfcShapeRepresentation">
		<xs:complexContent>
			<xs:extension base="ifc:IfcShapeModel"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcShellBasedSurfaceModel" type="ifc:IfcShellBasedSurfaceModel" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcShellBasedSurfaceModel">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem">
				<xs:sequence>
					<xs:element name="SbsmBoundary">
						<xs:complexType>
							<xs:group ref="ifc:IfcShell" maxOccurs="unbounded"/>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcShell"/>
							<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="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="IfcSite" type="ifc:IfcSite" substitutionGroup="ifc:IfcSpatialStructureElement" nillable="true"/>
	<xs:complexType name="IfcSite">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSpatialStructureElement">
				<xs:sequence>
					<xs:element name="SiteAddress" type="ifc:IfcPostalAddress" nillable="true" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="RefLatitude" type="ifc:List-IfcCompoundPlaneAngleMeasure" use="optional"/>
				<xs:attribute name="RefLongitude" type="ifc:List-IfcCompoundPlaneAngleMeasure" use="optional"/>
				<xs:attribute name="RefElevation" type="ifc:IfcLengthMeasure" use="optional"/>
				<xs:attribute name="LandTitleNumber" type="ifc:IfcLabel" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSlab" type="ifc:IfcSlab" substitutionGroup="ifc:IfcBuildingElement" nillable="true"/>
	<xs:complexType name="IfcSlab">
		<xs:complexContent>
			<xs:extension base="ifc:IfcBuildingElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSlabElementedCase" type="ifc:IfcSlabElementedCase" substitutionGroup="ifc:IfcSlab" nillable="true"/>
	<xs:complexType name="IfcSlabElementedCase">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSlab"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSlabStandardCase" type="ifc:IfcSlabStandardCase" substitutionGroup="ifc:IfcSlab" nillable="true"/>
	<xs:complexType name="IfcSlabStandardCase">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSlab"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSlabType" type="ifc:IfcSlabType" substitutionGroup="ifc:IfcBuildingElementType" nillable="true"/>
	<xs:complexType name="IfcSlabType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcBuildingElementType">
				<xs:attribute name="PredefinedType" type="ifc:IfcSlabTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSolarDevice" type="ifc:IfcSolarDevice" substitutionGroup="ifc:IfcEnergyConversionDevice" nillable="true"/>
	<xs:complexType name="IfcSolarDevice">
		<xs:complexContent>
			<xs:extension base="ifc:IfcEnergyConversionDevice"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSolarDeviceType" type="ifc:IfcSolarDeviceType" substitutionGroup="ifc:IfcEnergyConversionDeviceType" nillable="true"/>
	<xs:complexType name="IfcSolarDeviceType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcEnergyConversionDeviceType">
				<xs:attribute name="PredefinedType" type="ifc:IfcSolarDeviceTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSolidModel" type="ifc:IfcSolidModel" abstract="true" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcSolidModel" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem"/>
		</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="IfcSpaceType" type="ifc:IfcSpaceType" substitutionGroup="ifc:IfcSpatialStructureElementType" nillable="true"/>
	<xs:complexType name="IfcSpaceType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSpatialStructureElementType">
				<xs:attribute name="PredefinedType" type="ifc:IfcSpaceTypeEnum" use="optional"/>
			</xs:extension>
		</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="IfcSpatialElementType" type="ifc:IfcSpatialElementType" abstract="true" substitutionGroup="ifc:IfcTypeProduct" nillable="true"/>
	<xs:complexType name="IfcSpatialElementType" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcTypeProduct"/>
		</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="IfcSpatialStructureElementType" type="ifc:IfcSpatialStructureElementType" abstract="true" substitutionGroup="ifc:IfcSpatialElementType" nillable="true"/>
	<xs:complexType name="IfcSpatialStructureElementType" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSpatialElementType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcStyleModel" type="ifc:IfcStyleModel" abstract="true" substitutionGroup="ifc:IfcRepresentation" nillable="true"/>
	<xs:complexType name="IfcStyleModel" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRepresentation"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcStyledItem" type="ifc:IfcStyledItem" substitutionGroup="ifc:IfcRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcStyledItem">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRepresentationItem">
				<xs:sequence>
					<xs:element name="Styles">
						<xs:complexType>
							<xs:group ref="ifc:IfcStyleAssignmentSelect" maxOccurs="unbounded"/>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcStyleAssignmentSelect"/>
							<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="IfcStyledRepresentation" type="ifc:IfcStyledRepresentation" substitutionGroup="ifc:IfcStyleModel" nillable="true"/>
	<xs:complexType name="IfcStyledRepresentation">
		<xs:complexContent>
			<xs:extension base="ifc:IfcStyleModel"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSubContractResource" type="ifc:IfcSubContractResource" substitutionGroup="ifc:IfcConstructionResource" nillable="true"/>
	<xs:complexType name="IfcSubContractResource">
		<xs:complexContent>
			<xs:extension base="ifc:IfcConstructionResource"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSubContractResourceType" type="ifc:IfcSubContractResourceType" substitutionGroup="ifc:IfcConstructionResourceType" nillable="true"/>
	<xs:complexType name="IfcSubContractResourceType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcConstructionResourceType">
				<xs:attribute name="PredefinedType" type="ifc:IfcSubContractResourceTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSurface" type="ifc:IfcSurface" abstract="true" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcSurface" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSurfaceStyle" type="ifc:IfcSurfaceStyle" substitutionGroup="ifc:IfcPresentationStyle" nillable="true"/>
	<xs:complexType name="IfcSurfaceStyle">
		<xs:complexContent>
			<xs:extension base="ifc:IfcPresentationStyle">
				<xs:sequence>
					<xs:element name="Styles">
						<xs:complexType>
							<xs:group ref="ifc:IfcSurfaceStyleElementSelect" maxOccurs="5"/>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcSurfaceStyleElementSelect"/>
							<xs:attribute ref="ifc:cType" fixed="set"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="Side" type="ifc:IfcSurfaceSide" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSweptAreaSolid" type="ifc:IfcSweptAreaSolid" abstract="true" substitutionGroup="ifc:IfcSolidModel" nillable="true"/>
	<xs:complexType name="IfcSweptAreaSolid" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSolidModel">
				<xs:sequence>
					<xs:element name="SweptArea" type="ifc:IfcProfileDef" nillable="true"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSweptDiskSolid" type="ifc:IfcSweptDiskSolid" substitutionGroup="ifc:IfcSolidModel" nillable="true"/>
	<xs:complexType name="IfcSweptDiskSolid">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSolidModel">
				<xs:sequence>
					<xs:element name="Directrix" type="ifc:IfcCurve" nillable="true"/>
				</xs:sequence>
				<xs:attribute name="Radius" type="ifc:IfcPositiveLengthMeasure" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSweptSurface" type="ifc:IfcSweptSurface" abstract="true" substitutionGroup="ifc:IfcSurface" nillable="true"/>
	<xs:complexType name="IfcSweptSurface" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSurface">
				<xs:sequence>
					<xs:element name="SweptCurve" type="ifc:IfcProfileDef" nillable="true"/>
				</xs:sequence>
			</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="IfcSystemFurnitureElement" type="ifc:IfcSystemFurnitureElement" substitutionGroup="ifc:IfcFurnishingElement" nillable="true"/>
	<xs:complexType name="IfcSystemFurnitureElement">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFurnishingElement">
				<xs:attribute name="PredefinedType" type="ifc:IfcSystemFurnitureElementTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcSystemFurnitureElementType" type="ifc:IfcSystemFurnitureElementType" substitutionGroup="ifc:IfcFurnishingElementType" nillable="true"/>
	<xs:complexType name="IfcSystemFurnitureElementType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFurnishingElementType"/>
		</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="IfcTelecomAddress" type="ifc:IfcTelecomAddress" substitutionGroup="ifc:IfcAddress" nillable="true"/>
	<xs:complexType name="IfcTelecomAddress">
		<xs:complexContent>
			<xs:extension base="ifc:IfcAddress">
				<xs:attribute name="ElectronicMailAddresses" use="optional">
					<xs:simpleType>
						<xs:restriction>
							<xs:simpleType>
								<xs:list itemType="ifc:IfcLabel"/>
							</xs:simpleType>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTessellatedItem" type="ifc:IfcTessellatedItem" abstract="true" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcTessellatedItem" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTextLiteral" type="ifc:IfcTextLiteral" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcTextLiteral">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem">
				<xs:sequence>
					<xs:element name="Placement">
						<xs:complexType>
							<xs:group ref="ifc:IfcAxis2Placement"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="Literal" type="ifc:IfcPresentableText" use="optional"/>
				<xs:attribute name="Path" type="ifc:IfcTextPath" 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="IfcTopologicalRepresentationItem" type="ifc:IfcTopologicalRepresentationItem" abstract="true" substitutionGroup="ifc:IfcRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcTopologicalRepresentationItem" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcRepresentationItem"/>
		</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:sequence>
					<xs:element name="HasPropertySets" nillable="true" minOccurs="0">
						<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:sequence>
			</xs:extension>
		</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:sequence>
					<xs:element name="RepresentationMaps" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcRepresentationMap" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcRepresentationMap"/>
							<xs:attribute ref="ifc:cType" fixed="list-unique"/>
							<xs:attribute ref="ifc:arraySize" use="optional"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcTypeResource" type="ifc:IfcTypeResource" abstract="true" substitutionGroup="ifc:IfcTypeObject" nillable="true"/>
	<xs:complexType name="IfcTypeResource" abstract="true">
		<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="IfcValve" type="ifc:IfcValve" substitutionGroup="ifc:IfcFlowController" nillable="true"/>
	<xs:complexType name="IfcValve">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowController"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcValveType" type="ifc:IfcValveType" substitutionGroup="ifc:IfcFlowControllerType" nillable="true"/>
	<xs:complexType name="IfcValveType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowControllerType">
				<xs:attribute name="PredefinedType" type="ifc:IfcValveTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcVector" type="ifc:IfcVector" substitutionGroup="ifc:IfcGeometricRepresentationItem" nillable="true"/>
	<xs:complexType name="IfcVector">
		<xs:complexContent>
			<xs:extension base="ifc:IfcGeometricRepresentationItem">
				<xs:sequence>
					<xs:element name="Orientation" type="ifc:IfcDirection" nillable="true"/>
				</xs:sequence>
				<xs:attribute name="Magnitude" type="ifc:IfcLengthMeasure" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcVoidingFeature" type="ifc:IfcVoidingFeature" substitutionGroup="ifc:IfcFeatureElementSubtraction" nillable="true"/>
	<xs:complexType name="IfcVoidingFeature">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFeatureElementSubtraction"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcWall" type="ifc:IfcWall" substitutionGroup="ifc:IfcBuildingElement" nillable="true"/>
	<xs:complexType name="IfcWall">
		<xs:complexContent>
			<xs:extension base="ifc:IfcBuildingElement"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcWallElementedCase" type="ifc:IfcWallElementedCase" substitutionGroup="ifc:IfcWall" nillable="true"/>
	<xs:complexType name="IfcWallElementedCase">
		<xs:complexContent>
			<xs:extension base="ifc:IfcWall"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcWallStandardCase" type="ifc:IfcWallStandardCase" substitutionGroup="ifc:IfcWall" nillable="true"/>
	<xs:complexType name="IfcWallStandardCase">
		<xs:complexContent>
			<xs:extension base="ifc:IfcWall"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcWallType" type="ifc:IfcWallType" substitutionGroup="ifc:IfcBuildingElementType" nillable="true"/>
	<xs:complexType name="IfcWallType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcBuildingElementType">
				<xs:attribute name="PredefinedType" type="ifc:IfcWallTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcWasteTerminal" type="ifc:IfcWasteTerminal" substitutionGroup="ifc:IfcFlowTerminal" nillable="true"/>
	<xs:complexType name="IfcWasteTerminal">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowTerminal"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcWasteTerminalType" type="ifc:IfcWasteTerminalType" substitutionGroup="ifc:IfcFlowTerminalType" nillable="true"/>
	<xs:complexType name="IfcWasteTerminalType">
		<xs:complexContent>
			<xs:extension base="ifc:IfcFlowTerminalType">
				<xs:attribute name="PredefinedType" type="ifc:IfcWasteTerminalTypeEnum" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcWorkCalendar" type="ifc:IfcWorkCalendar" substitutionGroup="ifc:IfcControl" nillable="true"/>
	<xs:complexType name="IfcWorkCalendar">
		<xs:complexContent>
			<xs:extension base="ifc:IfcControl">
				<xs:sequence>
					<xs:element name="WorkingTimes" nillable="true" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="ifc:IfcWorkTime" maxOccurs="unbounded"/>
							</xs:sequence>
							<xs:attribute ref="ifc:itemType" fixed="ifc:IfcWorkTime"/>
							<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="IfcWorkControl" type="ifc:IfcWorkControl" abstract="true" substitutionGroup="ifc:IfcControl" nillable="true"/>
	<xs:complexType name="IfcWorkControl" abstract="true">
		<xs:complexContent>
			<xs:extension base="ifc:IfcControl">
				<xs:attribute name="CreationDate" type="ifc:IfcDateTime" use="optional"/>
				<xs:attribute name="StartTime" type="ifc:IfcDateTime" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcWorkPlan" type="ifc:IfcWorkPlan" substitutionGroup="ifc:IfcWorkControl" nillable="true"/>
	<xs:complexType name="IfcWorkPlan">
		<xs:complexContent>
			<xs:extension base="ifc:IfcWorkControl"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="IfcWorkTime" type="ifc:IfcWorkTime" substitutionGroup="ifc:IfcSchedulingTime" nillable="true"/>
	<xs:complexType name="IfcWorkTime">
		<xs:complexContent>
			<xs:extension base="ifc:IfcSchedulingTime">
				<xs:sequence>
					<xs:element name="RecurrencePattern" type="ifc:IfcRecurrencePattern" nillable="true" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="Start" type="ifc:IfcDate" use="optional"/>
				<xs:attribute name="Finish" type="ifc:IfcDate" use="optional"/>
			</xs:extension>
		</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="IfcAppliedValueSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcAreaMeasure-wrapper"/>
			<xs:element ref="ifc:IfcBoolean-wrapper"/>
			<xs:element ref="ifc:IfcCompoundPlaneAngleMeasure-wrapper"/>
			<xs:element ref="ifc:IfcCountMeasure-wrapper"/>
			<xs:element ref="ifc:IfcDate-wrapper"/>
			<xs:element ref="ifc:IfcDateTime-wrapper"/>
			<xs:element ref="ifc:IfcElectricCurrentMeasure-wrapper"/>
			<xs:element ref="ifc:IfcEnergyMeasure-wrapper"/>
			<xs:element ref="ifc:IfcIdentifier-wrapper"/>
			<xs:element ref="ifc:IfcInteger-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:IfcMassFlowRateMeasure-wrapper"/>
			<xs:element ref="ifc:IfcMassMeasure-wrapper"/>
			<xs:element ref="ifc:IfcMeasureWithUnit"/>
			<xs:element ref="ifc:IfcMonetaryMeasure-wrapper"/>
			<xs:element ref="ifc:IfcNonNegativeLengthMeasure-wrapper"/>
			<xs:element ref="ifc:IfcNormalisedRatioMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPlanarForceMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPlaneAngleMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPositiveLengthMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPositivePlaneAngleMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPositiveRatioMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPowerMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPressureMeasure-wrapper"/>
			<xs:element ref="ifc:IfcReal-wrapper"/>
			<xs:element ref="ifc:IfcText-wrapper"/>
			<xs:element ref="ifc:IfcThermalTransmittanceMeasure-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:IfcVolumeMeasure-wrapper"/>
			<xs:element ref="ifc:IfcVolumetricFlowRateMeasure-wrapper"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcAxis2Placement">
		<xs:choice>
			<xs:element ref="ifc:IfcAxis2Placement3D"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcBooleanOperand">
		<xs:choice>
			<xs:element ref="ifc:IfcBooleanResult"/>
			<xs:element ref="ifc:IfcSolidModel"/>
		</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="IfcCsgSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcBooleanResult"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcCurveOrEdgeCurve">
		<xs:choice>
			<xs:element ref="ifc:IfcBoundedCurve"/>
		</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="IfcFillStyleSelect">
		<xs:choice>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcGeometricSetSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcCurve"/>
			<xs:element ref="ifc:IfcPoint"/>
			<xs:element ref="ifc:IfcSurface"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcLayeredItem">
		<xs:choice>
			<xs:element ref="ifc:IfcRepresentation"/>
			<xs:element ref="ifc:IfcRepresentationItem"/>
		</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="IfcObjectReferenceSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcAddress"/>
			<xs:element ref="ifc:IfcAppliedValue"/>
			<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:IfcTimeSeries"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcProcessSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcProcess"/>
		</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="IfcResourceSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcResource"/>
			<xs:element ref="ifc:IfcTypeResource"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcShell">
		<xs:choice>
			<xs:element ref="ifc:IfcClosedShell"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcSpaceBoundarySelect">
		<xs:choice>
			<xs:element ref="ifc:IfcSpace"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcStyleAssignmentSelect">
		<xs:choice>
			<xs:element ref="ifc:IfcPresentationStyle"/>
		</xs:choice>
	</xs:group>
	<xs:group name="IfcSurfaceStyleElementSelect">
		<xs:choice>
		</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:IfcCompoundPlaneAngleMeasure-wrapper"/>
			<xs:element ref="ifc:IfcCountMeasure-wrapper"/>
			<xs:element ref="ifc:IfcDate-wrapper"/>
			<xs:element ref="ifc:IfcDateTime-wrapper"/>
			<xs:element ref="ifc:IfcElectricCurrentMeasure-wrapper"/>
			<xs:element ref="ifc:IfcEnergyMeasure-wrapper"/>
			<xs:element ref="ifc:IfcIdentifier-wrapper"/>
			<xs:element ref="ifc:IfcInteger-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:IfcMassFlowRateMeasure-wrapper"/>
			<xs:element ref="ifc:IfcMassMeasure-wrapper"/>
			<xs:element ref="ifc:IfcMonetaryMeasure-wrapper"/>
			<xs:element ref="ifc:IfcNonNegativeLengthMeasure-wrapper"/>
			<xs:element ref="ifc:IfcNormalisedRatioMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPlanarForceMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPlaneAngleMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPositiveLengthMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPositivePlaneAngleMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPositiveRatioMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPowerMeasure-wrapper"/>
			<xs:element ref="ifc:IfcPressureMeasure-wrapper"/>
			<xs:element ref="ifc:IfcReal-wrapper"/>
			<xs:element ref="ifc:IfcText-wrapper"/>
			<xs:element ref="ifc:IfcThermalTransmittanceMeasure-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:IfcVolumeMeasure-wrapper"/>
			<xs:element ref="ifc:IfcVolumetricFlowRateMeasure-wrapper"/>
		</xs:choice>
	</xs:group>
	<!-- enumeration type declarations (for ENUMERATION data type definitions) -->
	<xs:simpleType name="IfcBoilerTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="water"/>
			<xs:enumeration value="steam"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcBooleanOperator">
		<xs:restriction base="xs:string">
			<xs:enumeration value="union"/>
			<xs:enumeration value="intersection"/>
			<xs:enumeration value="difference"/>
		</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="IfcConnectionTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="atpath"/>
			<xs:enumeration value="atstart"/>
			<xs:enumeration value="atend"/>
			<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="IfcDirectionSenseEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="positive"/>
			<xs:enumeration value="negative"/>
		</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="IfcElectricApplianceTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="dishwasher"/>
			<xs:enumeration value="electriccooker"/>
			<xs:enumeration value="freestandingelectricheater"/>
			<xs:enumeration value="freestandingfan"/>
			<xs:enumeration value="freestandingwaterheater"/>
			<xs:enumeration value="freestandingwatercooler"/>
			<xs:enumeration value="freezer"/>
			<xs:enumeration value="fridge_freezer"/>
			<xs:enumeration value="handdryer"/>
			<xs:enumeration value="kitchenmachine"/>
			<xs:enumeration value="microwave"/>
			<xs:enumeration value="photocopier"/>
			<xs:enumeration value="refrigerator"/>
			<xs:enumeration value="tumbledryer"/>
			<xs:enumeration value="vendingmachine"/>
			<xs:enumeration value="washingmachine"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcFilterTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="airparticlefilter"/>
			<xs:enumeration value="compressedairfilter"/>
			<xs:enumeration value="odorfilter"/>
			<xs:enumeration value="oilfilter"/>
			<xs:enumeration value="strainer"/>
			<xs:enumeration value="waterfilter"/>
			<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="IfcFlowMeterTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="energymeter"/>
			<xs:enumeration value="gasmeter"/>
			<xs:enumeration value="oilmeter"/>
			<xs:enumeration value="watermeter"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcInternalOrExternalEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="internal"/>
			<xs:enumeration value="external"/>
			<xs:enumeration value="external_earth"/>
			<xs:enumeration value="external_water"/>
			<xs:enumeration value="external_fire"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcLayerSetDirectionEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="axis1"/>
			<xs:enumeration value="axis2"/>
			<xs:enumeration value="axis3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcMemberTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="brace"/>
			<xs:enumeration value="chord"/>
			<xs:enumeration value="collar"/>
			<xs:enumeration value="member"/>
			<xs:enumeration value="mullion"/>
			<xs:enumeration value="plate"/>
			<xs:enumeration value="post"/>
			<xs:enumeration value="purlin"/>
			<xs:enumeration value="rafter"/>
			<xs:enumeration value="stringer"/>
			<xs:enumeration value="strut"/>
			<xs:enumeration value="stud"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcPhysicalOrVirtualEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="physical"/>
			<xs:enumeration value="virtual"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcPipeFittingTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="bend"/>
			<xs:enumeration value="connector"/>
			<xs:enumeration value="entry"/>
			<xs:enumeration value="exit"/>
			<xs:enumeration value="junction"/>
			<xs:enumeration value="obstruction"/>
			<xs:enumeration value="transition"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcPipeSegmentTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="culvert"/>
			<xs:enumeration value="flexiblesegment"/>
			<xs:enumeration value="rigidsegment"/>
			<xs:enumeration value="gutter"/>
			<xs:enumeration value="spool"/>
			<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="IfcPumpTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="circulator"/>
			<xs:enumeration value="endsuction"/>
			<xs:enumeration value="splitcase"/>
			<xs:enumeration value="submersiblepump"/>
			<xs:enumeration value="sumppump"/>
			<xs:enumeration value="verticalinline"/>
			<xs:enumeration value="verticalturbine"/>
			<xs:enumeration value="userdefined"/>
			<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="IfcRoleEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="supplier"/>
			<xs:enumeration value="manufacturer"/>
			<xs:enumeration value="contractor"/>
			<xs:enumeration value="subcontractor"/>
			<xs:enumeration value="architect"/>
			<xs:enumeration value="structuralengineer"/>
			<xs:enumeration value="costengineer"/>
			<xs:enumeration value="client"/>
			<xs:enumeration value="buildingowner"/>
			<xs:enumeration value="buildingoperator"/>
			<xs:enumeration value="mechanicalengineer"/>
			<xs:enumeration value="electricalengineer"/>
			<xs:enumeration value="projectmanager"/>
			<xs:enumeration value="facilitiesmanager"/>
			<xs:enumeration value="civilengineer"/>
			<xs:enumeration value="commissioningengineer"/>
			<xs:enumeration value="engineer"/>
			<xs:enumeration value="owner"/>
			<xs:enumeration value="consultant"/>
			<xs:enumeration value="constructionmanager"/>
			<xs:enumeration value="fieldconstructionmanager"/>
			<xs:enumeration value="reseller"/>
			<xs:enumeration value="userdefined"/>
		</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="IfcSanitaryTerminalTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="bath"/>
			<xs:enumeration value="bidet"/>
			<xs:enumeration value="cistern"/>
			<xs:enumeration value="shower"/>
			<xs:enumeration value="sink"/>
			<xs:enumeration value="sanitaryfountain"/>
			<xs:enumeration value="toiletpan"/>
			<xs:enumeration value="urinal"/>
			<xs:enumeration value="washhandbasin"/>
			<xs:enumeration value="wcseat"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcSlabTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="floor"/>
			<xs:enumeration value="roof"/>
			<xs:enumeration value="landing"/>
			<xs:enumeration value="baseslab"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcSolarDeviceTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="solarcollector"/>
			<xs:enumeration value="solarpanel"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcSpaceTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="space"/>
			<xs:enumeration value="parking"/>
			<xs:enumeration value="gfa"/>
			<xs:enumeration value="internal"/>
			<xs:enumeration value="external"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</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="IfcSubContractResourceTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="purchase"/>
			<xs:enumeration value="work"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcSurfaceSide">
		<xs:restriction base="xs:string">
			<xs:enumeration value="positive"/>
			<xs:enumeration value="negative"/>
			<xs:enumeration value="both"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcSystemFurnitureElementTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="panel"/>
			<xs:enumeration value="worksurface"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcTextPath">
		<xs:restriction base="xs:string">
			<xs:enumeration value="left"/>
			<xs:enumeration value="right"/>
			<xs:enumeration value="up"/>
			<xs:enumeration value="down"/>
		</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="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="IfcValveTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="airrelease"/>
			<xs:enumeration value="antivacuum"/>
			<xs:enumeration value="changeover"/>
			<xs:enumeration value="check"/>
			<xs:enumeration value="commissioning"/>
			<xs:enumeration value="diverting"/>
			<xs:enumeration value="drawoffcock"/>
			<xs:enumeration value="doublecheck"/>
			<xs:enumeration value="doubleregulating"/>
			<xs:enumeration value="faucet"/>
			<xs:enumeration value="flushing"/>
			<xs:enumeration value="gascock"/>
			<xs:enumeration value="gastap"/>
			<xs:enumeration value="isolating"/>
			<xs:enumeration value="mixing"/>
			<xs:enumeration value="pressurereducing"/>
			<xs:enumeration value="pressurerelief"/>
			<xs:enumeration value="regulating"/>
			<xs:enumeration value="safetycutoff"/>
			<xs:enumeration value="steamtrap"/>
			<xs:enumeration value="stopcock"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcWallTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="movable"/>
			<xs:enumeration value="parapet"/>
			<xs:enumeration value="partitioning"/>
			<xs:enumeration value="plumbingwall"/>
			<xs:enumeration value="shear"/>
			<xs:enumeration value="solidwall"/>
			<xs:enumeration value="standard"/>
			<xs:enumeration value="polygonal"/>
			<xs:enumeration value="elementedwall"/>
			<xs:enumeration value="userdefined"/>
			<xs:enumeration value="notdefined"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IfcWasteTerminalTypeEnum">
		<xs:restriction base="xs:string">
			<xs:enumeration value="floortrap"/>
			<xs:enumeration value="floorwaste"/>
			<xs:enumeration value="gullysump"/>
			<xs:enumeration value="gullytrap"/>
			<xs:enumeration value="roofdrain"/>
			<xs:enumeration value="wastedisposalunit"/>
			<xs:enumeration value="wastetrap"/>
			<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:complexType name="IfcCompoundPlaneAngleMeasure">
		<xs:simpleContent>
			<xs:extension base="ifc:List-IfcCompoundPlaneAngleMeasure">
				<xs:attribute ref="ifc:itemType" fixed="xs:long"/>
				<xs:attribute ref="ifc:cType" fixed="list"/>
				<xs:attribute ref="ifc:arraySize" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="List-IfcCompoundPlaneAngleMeasure">
		<xs:restriction>
			<xs:simpleType>
				<xs:list itemType="xs:long"/>
			</xs:simpleType>
			<xs:minLength value="3"/>
			<xs:maxLength value="4"/>
		</xs:restriction>
	</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="IfcDimensionCount">
		<xs:restriction base="xs:long"/>
	</xs:simpleType>
	<xs:simpleType name="IfcElectricCurrentMeasure">
		<xs:restriction base="xs:double"/>
	</xs:simpleType>
	<xs:simpleType name="IfcEnergyMeasure">
		<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="IfcInteger">
		<xs:restriction base="xs:long"/>
	</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="IfcMassFlowRateMeasure">
		<xs:restriction base="xs:double"/>
	</xs:simpleType>
	<xs:simpleType name="IfcMassMeasure">
		<xs:restriction base="xs:double"/>
	</xs:simpleType>
	<xs:simpleType name="IfcMonetaryMeasure">
		<xs:restriction base="xs:double"/>
	</xs:simpleType>
	<xs:simpleType name="IfcNonNegativeLengthMeasure">
		<xs:restriction base="ifc:IfcLengthMeasure"/>
	</xs:simpleType>
	<xs:simpleType name="IfcNormalisedRatioMeasure">
		<xs:restriction base="ifc:IfcRatioMeasure"/>
	</xs:simpleType>
	<xs:simpleType name="IfcPlanarForceMeasure">
		<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="IfcPositivePlaneAngleMeasure">
		<xs:restriction base="ifc:IfcPlaneAngleMeasure"/>
	</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="IfcPresentableText">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="IfcPressureMeasure">
		<xs:restriction base="xs:double"/>
	</xs:simpleType>
	<xs:simpleType name="IfcReal">
		<xs:restriction base="xs:double"/>
	</xs:simpleType>
	<xs:simpleType name="IfcText">
		<xs:restriction base="xs:normalizedString"/>
	</xs:simpleType>
	<xs:simpleType name="IfcThermalTransmittanceMeasure">
		<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="IfcVolumeMeasure">
		<xs:restriction base="xs:double"/>
	</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="IfcCompoundPlaneAngleMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcCompoundPlaneAngleMeasure">
					<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="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="IfcEnergyMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcEnergyMeasure">
					<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="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="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="IfcMassFlowRateMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcMassFlowRateMeasure">
					<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="IfcMonetaryMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcMonetaryMeasure">
					<xs:attributeGroup ref="ifc:instanceAttributes"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="IfcNonNegativeLengthMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcNonNegativeLengthMeasure">
					<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="IfcPlanarForceMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcPlanarForceMeasure">
					<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="IfcPositivePlaneAngleMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcPositivePlaneAngleMeasure">
					<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="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="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="IfcThermalTransmittanceMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcThermalTransmittanceMeasure">
					<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="IfcVolumeMeasure-wrapper" nillable="true">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="ifc:IfcVolumeMeasure">
					<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>
