/* Code generated by IfcQuery EXPRESS generator, www.ifcquery.com */

#include <map>
#include <functional>
#include "ifcpp/model/BasicTypes.h"
#include "ifcpp/IFC4/include/IfcActionRequest.h"
#include "ifcpp/IFC4/include/IfcActor.h"
#include "ifcpp/IFC4/include/IfcActorRole.h"
#include "ifcpp/IFC4/include/IfcActuator.h"
#include "ifcpp/IFC4/include/IfcActuatorType.h"
#include "ifcpp/IFC4/include/IfcAddress.h"
#include "ifcpp/IFC4/include/IfcAdvancedBrep.h"
#include "ifcpp/IFC4/include/IfcAdvancedBrepWithVoids.h"
#include "ifcpp/IFC4/include/IfcAdvancedFace.h"
#include "ifcpp/IFC4/include/IfcAirTerminal.h"
#include "ifcpp/IFC4/include/IfcAirTerminalBox.h"
#include "ifcpp/IFC4/include/IfcAirTerminalBoxType.h"
#include "ifcpp/IFC4/include/IfcAirTerminalType.h"
#include "ifcpp/IFC4/include/IfcAirToAirHeatRecovery.h"
#include "ifcpp/IFC4/include/IfcAirToAirHeatRecoveryType.h"
#include "ifcpp/IFC4/include/IfcAlarm.h"
#include "ifcpp/IFC4/include/IfcAlarmType.h"
#include "ifcpp/IFC4/include/IfcAnnotation.h"
#include "ifcpp/IFC4/include/IfcAnnotationFillArea.h"
#include "ifcpp/IFC4/include/IfcApplication.h"
#include "ifcpp/IFC4/include/IfcAppliedValue.h"
#include "ifcpp/IFC4/include/IfcApproval.h"
#include "ifcpp/IFC4/include/IfcApprovalRelationship.h"
#include "ifcpp/IFC4/include/IfcArbitraryClosedProfileDef.h"
#include "ifcpp/IFC4/include/IfcArbitraryOpenProfileDef.h"
#include "ifcpp/IFC4/include/IfcArbitraryProfileDefWithVoids.h"
#include "ifcpp/IFC4/include/IfcAsset.h"
#include "ifcpp/IFC4/include/IfcAsymmetricIShapeProfileDef.h"
#include "ifcpp/IFC4/include/IfcAudioVisualAppliance.h"
#include "ifcpp/IFC4/include/IfcAudioVisualApplianceType.h"
#include "ifcpp/IFC4/include/IfcAxis1Placement.h"
#include "ifcpp/IFC4/include/IfcAxis2Placement2D.h"
#include "ifcpp/IFC4/include/IfcAxis2Placement3D.h"
#include "ifcpp/IFC4/include/IfcBSplineCurve.h"
#include "ifcpp/IFC4/include/IfcBSplineCurveWithKnots.h"
#include "ifcpp/IFC4/include/IfcBSplineSurface.h"
#include "ifcpp/IFC4/include/IfcBSplineSurfaceWithKnots.h"
#include "ifcpp/IFC4/include/IfcBeam.h"
#include "ifcpp/IFC4/include/IfcBeamStandardCase.h"
#include "ifcpp/IFC4/include/IfcBeamType.h"
#include "ifcpp/IFC4/include/IfcBlobTexture.h"
#include "ifcpp/IFC4/include/IfcBlock.h"
#include "ifcpp/IFC4/include/IfcBoiler.h"
#include "ifcpp/IFC4/include/IfcBoilerType.h"
#include "ifcpp/IFC4/include/IfcBooleanClippingResult.h"
#include "ifcpp/IFC4/include/IfcBooleanResult.h"
#include "ifcpp/IFC4/include/IfcBoundaryCondition.h"
#include "ifcpp/IFC4/include/IfcBoundaryCurve.h"
#include "ifcpp/IFC4/include/IfcBoundaryEdgeCondition.h"
#include "ifcpp/IFC4/include/IfcBoundaryFaceCondition.h"
#include "ifcpp/IFC4/include/IfcBoundaryNodeCondition.h"
#include "ifcpp/IFC4/include/IfcBoundaryNodeConditionWarping.h"
#include "ifcpp/IFC4/include/IfcBoundedCurve.h"
#include "ifcpp/IFC4/include/IfcBoundedSurface.h"
#include "ifcpp/IFC4/include/IfcBoundingBox.h"
#include "ifcpp/IFC4/include/IfcBoxedHalfSpace.h"
#include "ifcpp/IFC4/include/IfcBuilding.h"
#include "ifcpp/IFC4/include/IfcBuildingElement.h"
#include "ifcpp/IFC4/include/IfcBuildingElementPart.h"
#include "ifcpp/IFC4/include/IfcBuildingElementPartType.h"
#include "ifcpp/IFC4/include/IfcBuildingElementProxy.h"
#include "ifcpp/IFC4/include/IfcBuildingElementProxyType.h"
#include "ifcpp/IFC4/include/IfcBuildingElementType.h"
#include "ifcpp/IFC4/include/IfcBuildingStorey.h"
#include "ifcpp/IFC4/include/IfcBuildingSystem.h"
#include "ifcpp/IFC4/include/IfcBurner.h"
#include "ifcpp/IFC4/include/IfcBurnerType.h"
#include "ifcpp/IFC4/include/IfcCShapeProfileDef.h"
#include "ifcpp/IFC4/include/IfcCableCarrierFitting.h"
#include "ifcpp/IFC4/include/IfcCableCarrierFittingType.h"
#include "ifcpp/IFC4/include/IfcCableCarrierSegment.h"
#include "ifcpp/IFC4/include/IfcCableCarrierSegmentType.h"
#include "ifcpp/IFC4/include/IfcCableFitting.h"
#include "ifcpp/IFC4/include/IfcCableFittingType.h"
#include "ifcpp/IFC4/include/IfcCableSegment.h"
#include "ifcpp/IFC4/include/IfcCableSegmentType.h"
#include "ifcpp/IFC4/include/IfcCartesianPoint.h"
#include "ifcpp/IFC4/include/IfcCartesianPointList.h"
#include "ifcpp/IFC4/include/IfcCartesianPointList2D.h"
#include "ifcpp/IFC4/include/IfcCartesianPointList3D.h"
#include "ifcpp/IFC4/include/IfcCartesianTransformationOperator.h"
#include "ifcpp/IFC4/include/IfcCartesianTransformationOperator2D.h"
#include "ifcpp/IFC4/include/IfcCartesianTransformationOperator2DnonUniform.h"
#include "ifcpp/IFC4/include/IfcCartesianTransformationOperator3D.h"
#include "ifcpp/IFC4/include/IfcCartesianTransformationOperator3DnonUniform.h"
#include "ifcpp/IFC4/include/IfcCenterLineProfileDef.h"
#include "ifcpp/IFC4/include/IfcChiller.h"
#include "ifcpp/IFC4/include/IfcChillerType.h"
#include "ifcpp/IFC4/include/IfcChimney.h"
#include "ifcpp/IFC4/include/IfcChimneyType.h"
#include "ifcpp/IFC4/include/IfcCircle.h"
#include "ifcpp/IFC4/include/IfcCircleHollowProfileDef.h"
#include "ifcpp/IFC4/include/IfcCircleProfileDef.h"
#include "ifcpp/IFC4/include/IfcCivilElement.h"
#include "ifcpp/IFC4/include/IfcCivilElementType.h"
#include "ifcpp/IFC4/include/IfcClassification.h"
#include "ifcpp/IFC4/include/IfcClassificationReference.h"
#include "ifcpp/IFC4/include/IfcClosedShell.h"
#include "ifcpp/IFC4/include/IfcCoil.h"
#include "ifcpp/IFC4/include/IfcCoilType.h"
#include "ifcpp/IFC4/include/IfcColourRgb.h"
#include "ifcpp/IFC4/include/IfcColourRgbList.h"
#include "ifcpp/IFC4/include/IfcColourSpecification.h"
#include "ifcpp/IFC4/include/IfcColumn.h"
#include "ifcpp/IFC4/include/IfcColumnStandardCase.h"
#include "ifcpp/IFC4/include/IfcColumnType.h"
#include "ifcpp/IFC4/include/IfcCommunicationsAppliance.h"
#include "ifcpp/IFC4/include/IfcCommunicationsApplianceType.h"
#include "ifcpp/IFC4/include/IfcComplexProperty.h"
#include "ifcpp/IFC4/include/IfcComplexPropertyTemplate.h"
#include "ifcpp/IFC4/include/IfcCompositeCurve.h"
#include "ifcpp/IFC4/include/IfcCompositeCurveOnSurface.h"
#include "ifcpp/IFC4/include/IfcCompositeCurveSegment.h"
#include "ifcpp/IFC4/include/IfcCompositeProfileDef.h"
#include "ifcpp/IFC4/include/IfcCompressor.h"
#include "ifcpp/IFC4/include/IfcCompressorType.h"
#include "ifcpp/IFC4/include/IfcCondenser.h"
#include "ifcpp/IFC4/include/IfcCondenserType.h"
#include "ifcpp/IFC4/include/IfcConic.h"
#include "ifcpp/IFC4/include/IfcConnectedFaceSet.h"
#include "ifcpp/IFC4/include/IfcConnectionCurveGeometry.h"
#include "ifcpp/IFC4/include/IfcConnectionGeometry.h"
#include "ifcpp/IFC4/include/IfcConnectionPointEccentricity.h"
#include "ifcpp/IFC4/include/IfcConnectionPointGeometry.h"
#include "ifcpp/IFC4/include/IfcConnectionSurfaceGeometry.h"
#include "ifcpp/IFC4/include/IfcConnectionVolumeGeometry.h"
#include "ifcpp/IFC4/include/IfcConstraint.h"
#include "ifcpp/IFC4/include/IfcConstructionEquipmentResource.h"
#include "ifcpp/IFC4/include/IfcConstructionEquipmentResourceType.h"
#include "ifcpp/IFC4/include/IfcConstructionMaterialResource.h"
#include "ifcpp/IFC4/include/IfcConstructionMaterialResourceType.h"
#include "ifcpp/IFC4/include/IfcConstructionProductResource.h"
#include "ifcpp/IFC4/include/IfcConstructionProductResourceType.h"
#include "ifcpp/IFC4/include/IfcConstructionResource.h"
#include "ifcpp/IFC4/include/IfcConstructionResourceType.h"
#include "ifcpp/IFC4/include/IfcContext.h"
#include "ifcpp/IFC4/include/IfcContextDependentUnit.h"
#include "ifcpp/IFC4/include/IfcControl.h"
#include "ifcpp/IFC4/include/IfcController.h"
#include "ifcpp/IFC4/include/IfcControllerType.h"
#include "ifcpp/IFC4/include/IfcConversionBasedUnit.h"
#include "ifcpp/IFC4/include/IfcConversionBasedUnitWithOffset.h"
#include "ifcpp/IFC4/include/IfcCooledBeam.h"
#include "ifcpp/IFC4/include/IfcCooledBeamType.h"
#include "ifcpp/IFC4/include/IfcCoolingTower.h"
#include "ifcpp/IFC4/include/IfcCoolingTowerType.h"
#include "ifcpp/IFC4/include/IfcCoordinateOperation.h"
#include "ifcpp/IFC4/include/IfcCoordinateReferenceSystem.h"
#include "ifcpp/IFC4/include/IfcCostItem.h"
#include "ifcpp/IFC4/include/IfcCostSchedule.h"
#include "ifcpp/IFC4/include/IfcCostValue.h"
#include "ifcpp/IFC4/include/IfcCovering.h"
#include "ifcpp/IFC4/include/IfcCoveringType.h"
#include "ifcpp/IFC4/include/IfcCrewResource.h"
#include "ifcpp/IFC4/include/IfcCrewResourceType.h"
#include "ifcpp/IFC4/include/IfcCsgPrimitive3D.h"
#include "ifcpp/IFC4/include/IfcCsgSolid.h"
#include "ifcpp/IFC4/include/IfcCurrencyRelationship.h"
#include "ifcpp/IFC4/include/IfcCurtainWall.h"
#include "ifcpp/IFC4/include/IfcCurtainWallType.h"
#include "ifcpp/IFC4/include/IfcCurve.h"
#include "ifcpp/IFC4/include/IfcCurveBoundedPlane.h"
#include "ifcpp/IFC4/include/IfcCurveBoundedSurface.h"
#include "ifcpp/IFC4/include/IfcCurveStyle.h"
#include "ifcpp/IFC4/include/IfcCurveStyleFont.h"
#include "ifcpp/IFC4/include/IfcCurveStyleFontAndScaling.h"
#include "ifcpp/IFC4/include/IfcCurveStyleFontPattern.h"
#include "ifcpp/IFC4/include/IfcCylindricalSurface.h"
#include "ifcpp/IFC4/include/IfcDamper.h"
#include "ifcpp/IFC4/include/IfcDamperType.h"
#include "ifcpp/IFC4/include/IfcDerivedProfileDef.h"
#include "ifcpp/IFC4/include/IfcDerivedUnit.h"
#include "ifcpp/IFC4/include/IfcDerivedUnitElement.h"
#include "ifcpp/IFC4/include/IfcDimensionalExponents.h"
#include "ifcpp/IFC4/include/IfcDirection.h"
#include "ifcpp/IFC4/include/IfcDiscreteAccessory.h"
#include "ifcpp/IFC4/include/IfcDiscreteAccessoryType.h"
#include "ifcpp/IFC4/include/IfcDistributionChamberElement.h"
#include "ifcpp/IFC4/include/IfcDistributionChamberElementType.h"
#include "ifcpp/IFC4/include/IfcDistributionCircuit.h"
#include "ifcpp/IFC4/include/IfcDistributionControlElement.h"
#include "ifcpp/IFC4/include/IfcDistributionControlElementType.h"
#include "ifcpp/IFC4/include/IfcDistributionElement.h"
#include "ifcpp/IFC4/include/IfcDistributionElementType.h"
#include "ifcpp/IFC4/include/IfcDistributionFlowElement.h"
#include "ifcpp/IFC4/include/IfcDistributionFlowElementType.h"
#include "ifcpp/IFC4/include/IfcDistributionPort.h"
#include "ifcpp/IFC4/include/IfcDistributionSystem.h"
#include "ifcpp/IFC4/include/IfcDocumentInformation.h"
#include "ifcpp/IFC4/include/IfcDocumentInformationRelationship.h"
#include "ifcpp/IFC4/include/IfcDocumentReference.h"
#include "ifcpp/IFC4/include/IfcDoor.h"
#include "ifcpp/IFC4/include/IfcDoorLiningProperties.h"
#include "ifcpp/IFC4/include/IfcDoorPanelProperties.h"
#include "ifcpp/IFC4/include/IfcDoorStandardCase.h"
#include "ifcpp/IFC4/include/IfcDoorStyle.h"
#include "ifcpp/IFC4/include/IfcDoorType.h"
#include "ifcpp/IFC4/include/IfcDraughtingPreDefinedColour.h"
#include "ifcpp/IFC4/include/IfcDraughtingPreDefinedCurveFont.h"
#include "ifcpp/IFC4/include/IfcDuctFitting.h"
#include "ifcpp/IFC4/include/IfcDuctFittingType.h"
#include "ifcpp/IFC4/include/IfcDuctSegment.h"
#include "ifcpp/IFC4/include/IfcDuctSegmentType.h"
#include "ifcpp/IFC4/include/IfcDuctSilencer.h"
#include "ifcpp/IFC4/include/IfcDuctSilencerType.h"
#include "ifcpp/IFC4/include/IfcEdge.h"
#include "ifcpp/IFC4/include/IfcEdgeCurve.h"
#include "ifcpp/IFC4/include/IfcEdgeLoop.h"
#include "ifcpp/IFC4/include/IfcElectricAppliance.h"
#include "ifcpp/IFC4/include/IfcElectricApplianceType.h"
#include "ifcpp/IFC4/include/IfcElectricDistributionBoard.h"
#include "ifcpp/IFC4/include/IfcElectricDistributionBoardType.h"
#include "ifcpp/IFC4/include/IfcElectricFlowStorageDevice.h"
#include "ifcpp/IFC4/include/IfcElectricFlowStorageDeviceType.h"
#include "ifcpp/IFC4/include/IfcElectricGenerator.h"
#include "ifcpp/IFC4/include/IfcElectricGeneratorType.h"
#include "ifcpp/IFC4/include/IfcElectricMotor.h"
#include "ifcpp/IFC4/include/IfcElectricMotorType.h"
#include "ifcpp/IFC4/include/IfcElectricTimeControl.h"
#include "ifcpp/IFC4/include/IfcElectricTimeControlType.h"
#include "ifcpp/IFC4/include/IfcElement.h"
#include "ifcpp/IFC4/include/IfcElementAssembly.h"
#include "ifcpp/IFC4/include/IfcElementAssemblyType.h"
#include "ifcpp/IFC4/include/IfcElementComponent.h"
#include "ifcpp/IFC4/include/IfcElementComponentType.h"
#include "ifcpp/IFC4/include/IfcElementQuantity.h"
#include "ifcpp/IFC4/include/IfcElementType.h"
#include "ifcpp/IFC4/include/IfcElementarySurface.h"
#include "ifcpp/IFC4/include/IfcEllipse.h"
#include "ifcpp/IFC4/include/IfcEllipseProfileDef.h"
#include "ifcpp/IFC4/include/IfcEnergyConversionDevice.h"
#include "ifcpp/IFC4/include/IfcEnergyConversionDeviceType.h"
#include "ifcpp/IFC4/include/IfcEngine.h"
#include "ifcpp/IFC4/include/IfcEngineType.h"
#include "ifcpp/IFC4/include/IfcEvaporativeCooler.h"
#include "ifcpp/IFC4/include/IfcEvaporativeCoolerType.h"
#include "ifcpp/IFC4/include/IfcEvaporator.h"
#include "ifcpp/IFC4/include/IfcEvaporatorType.h"
#include "ifcpp/IFC4/include/IfcEvent.h"
#include "ifcpp/IFC4/include/IfcEventTime.h"
#include "ifcpp/IFC4/include/IfcEventType.h"
#include "ifcpp/IFC4/include/IfcExtendedProperties.h"
#include "ifcpp/IFC4/include/IfcExternalInformation.h"
#include "ifcpp/IFC4/include/IfcExternalReference.h"
#include "ifcpp/IFC4/include/IfcExternalReferenceRelationship.h"
#include "ifcpp/IFC4/include/IfcExternalSpatialElement.h"
#include "ifcpp/IFC4/include/IfcExternalSpatialStructureElement.h"
#include "ifcpp/IFC4/include/IfcExternallyDefinedHatchStyle.h"
#include "ifcpp/IFC4/include/IfcExternallyDefinedSurfaceStyle.h"
#include "ifcpp/IFC4/include/IfcExternallyDefinedTextFont.h"
#include "ifcpp/IFC4/include/IfcExtrudedAreaSolid.h"
#include "ifcpp/IFC4/include/IfcExtrudedAreaSolidTapered.h"
#include "ifcpp/IFC4/include/IfcFace.h"
#include "ifcpp/IFC4/include/IfcFaceBasedSurfaceModel.h"
#include "ifcpp/IFC4/include/IfcFaceBound.h"
#include "ifcpp/IFC4/include/IfcFaceOuterBound.h"
#include "ifcpp/IFC4/include/IfcFaceSurface.h"
#include "ifcpp/IFC4/include/IfcFacetedBrep.h"
#include "ifcpp/IFC4/include/IfcFacetedBrepWithVoids.h"
#include "ifcpp/IFC4/include/IfcFailureConnectionCondition.h"
#include "ifcpp/IFC4/include/IfcFan.h"
#include "ifcpp/IFC4/include/IfcFanType.h"
#include "ifcpp/IFC4/include/IfcFastener.h"
#include "ifcpp/IFC4/include/IfcFastenerType.h"
#include "ifcpp/IFC4/include/IfcFeatureElement.h"
#include "ifcpp/IFC4/include/IfcFeatureElementAddition.h"
#include "ifcpp/IFC4/include/IfcFeatureElementSubtraction.h"
#include "ifcpp/IFC4/include/IfcFillAreaStyle.h"
#include "ifcpp/IFC4/include/IfcFillAreaStyleHatching.h"
#include "ifcpp/IFC4/include/IfcFillAreaStyleTiles.h"
#include "ifcpp/IFC4/include/IfcFilter.h"
#include "ifcpp/IFC4/include/IfcFilterType.h"
#include "ifcpp/IFC4/include/IfcFireSuppressionTerminal.h"
#include "ifcpp/IFC4/include/IfcFireSuppressionTerminalType.h"
#include "ifcpp/IFC4/include/IfcFixedReferenceSweptAreaSolid.h"
#include "ifcpp/IFC4/include/IfcFlowController.h"
#include "ifcpp/IFC4/include/IfcFlowControllerType.h"
#include "ifcpp/IFC4/include/IfcFlowFitting.h"
#include "ifcpp/IFC4/include/IfcFlowFittingType.h"
#include "ifcpp/IFC4/include/IfcFlowInstrument.h"
#include "ifcpp/IFC4/include/IfcFlowInstrumentType.h"
#include "ifcpp/IFC4/include/IfcFlowMeter.h"
#include "ifcpp/IFC4/include/IfcFlowMeterType.h"
#include "ifcpp/IFC4/include/IfcFlowMovingDevice.h"
#include "ifcpp/IFC4/include/IfcFlowMovingDeviceType.h"
#include "ifcpp/IFC4/include/IfcFlowSegment.h"
#include "ifcpp/IFC4/include/IfcFlowSegmentType.h"
#include "ifcpp/IFC4/include/IfcFlowStorageDevice.h"
#include "ifcpp/IFC4/include/IfcFlowStorageDeviceType.h"
#include "ifcpp/IFC4/include/IfcFlowTerminal.h"
#include "ifcpp/IFC4/include/IfcFlowTerminalType.h"
#include "ifcpp/IFC4/include/IfcFlowTreatmentDevice.h"
#include "ifcpp/IFC4/include/IfcFlowTreatmentDeviceType.h"
#include "ifcpp/IFC4/include/IfcFooting.h"
#include "ifcpp/IFC4/include/IfcFootingType.h"
#include "ifcpp/IFC4/include/IfcFurnishingElement.h"
#include "ifcpp/IFC4/include/IfcFurnishingElementType.h"
#include "ifcpp/IFC4/include/IfcFurniture.h"
#include "ifcpp/IFC4/include/IfcFurnitureType.h"
#include "ifcpp/IFC4/include/IfcGeographicElement.h"
#include "ifcpp/IFC4/include/IfcGeographicElementType.h"
#include "ifcpp/IFC4/include/IfcGeometricCurveSet.h"
#include "ifcpp/IFC4/include/IfcGeometricRepresentationContext.h"
#include "ifcpp/IFC4/include/IfcGeometricRepresentationItem.h"
#include "ifcpp/IFC4/include/IfcGeometricRepresentationSubContext.h"
#include "ifcpp/IFC4/include/IfcGeometricSet.h"
#include "ifcpp/IFC4/include/IfcGrid.h"
#include "ifcpp/IFC4/include/IfcGridAxis.h"
#include "ifcpp/IFC4/include/IfcGridPlacement.h"
#include "ifcpp/IFC4/include/IfcGroup.h"
#include "ifcpp/IFC4/include/IfcHalfSpaceSolid.h"
#include "ifcpp/IFC4/include/IfcHeatExchanger.h"
#include "ifcpp/IFC4/include/IfcHeatExchangerType.h"
#include "ifcpp/IFC4/include/IfcHumidifier.h"
#include "ifcpp/IFC4/include/IfcHumidifierType.h"
#include "ifcpp/IFC4/include/IfcIShapeProfileDef.h"
#include "ifcpp/IFC4/include/IfcImageTexture.h"
#include "ifcpp/IFC4/include/IfcIndexedColourMap.h"
#include "ifcpp/IFC4/include/IfcIndexedPolyCurve.h"
#include "ifcpp/IFC4/include/IfcIndexedPolygonalFace.h"
#include "ifcpp/IFC4/include/IfcIndexedPolygonalFaceWithVoids.h"
#include "ifcpp/IFC4/include/IfcIndexedTextureMap.h"
#include "ifcpp/IFC4/include/IfcIndexedTriangleTextureMap.h"
#include "ifcpp/IFC4/include/IfcInterceptor.h"
#include "ifcpp/IFC4/include/IfcInterceptorType.h"
#include "ifcpp/IFC4/include/IfcIntersectionCurve.h"
#include "ifcpp/IFC4/include/IfcInventory.h"
#include "ifcpp/IFC4/include/IfcIrregularTimeSeries.h"
#include "ifcpp/IFC4/include/IfcIrregularTimeSeriesValue.h"
#include "ifcpp/IFC4/include/IfcJunctionBox.h"
#include "ifcpp/IFC4/include/IfcJunctionBoxType.h"
#include "ifcpp/IFC4/include/IfcLShapeProfileDef.h"
#include "ifcpp/IFC4/include/IfcLaborResource.h"
#include "ifcpp/IFC4/include/IfcLaborResourceType.h"
#include "ifcpp/IFC4/include/IfcLagTime.h"
#include "ifcpp/IFC4/include/IfcLamp.h"
#include "ifcpp/IFC4/include/IfcLampType.h"
#include "ifcpp/IFC4/include/IfcLibraryInformation.h"
#include "ifcpp/IFC4/include/IfcLibraryReference.h"
#include "ifcpp/IFC4/include/IfcLightDistributionData.h"
#include "ifcpp/IFC4/include/IfcLightFixture.h"
#include "ifcpp/IFC4/include/IfcLightFixtureType.h"
#include "ifcpp/IFC4/include/IfcLightIntensityDistribution.h"
#include "ifcpp/IFC4/include/IfcLightSource.h"
#include "ifcpp/IFC4/include/IfcLightSourceAmbient.h"
#include "ifcpp/IFC4/include/IfcLightSourceDirectional.h"
#include "ifcpp/IFC4/include/IfcLightSourceGoniometric.h"
#include "ifcpp/IFC4/include/IfcLightSourcePositional.h"
#include "ifcpp/IFC4/include/IfcLightSourceSpot.h"
#include "ifcpp/IFC4/include/IfcLine.h"
#include "ifcpp/IFC4/include/IfcLocalPlacement.h"
#include "ifcpp/IFC4/include/IfcLoop.h"
#include "ifcpp/IFC4/include/IfcManifoldSolidBrep.h"
#include "ifcpp/IFC4/include/IfcMapConversion.h"
#include "ifcpp/IFC4/include/IfcMappedItem.h"
#include "ifcpp/IFC4/include/IfcMaterial.h"
#include "ifcpp/IFC4/include/IfcMaterialClassificationRelationship.h"
#include "ifcpp/IFC4/include/IfcMaterialConstituent.h"
#include "ifcpp/IFC4/include/IfcMaterialConstituentSet.h"
#include "ifcpp/IFC4/include/IfcMaterialDefinition.h"
#include "ifcpp/IFC4/include/IfcMaterialDefinitionRepresentation.h"
#include "ifcpp/IFC4/include/IfcMaterialLayer.h"
#include "ifcpp/IFC4/include/IfcMaterialLayerSet.h"
#include "ifcpp/IFC4/include/IfcMaterialLayerSetUsage.h"
#include "ifcpp/IFC4/include/IfcMaterialLayerWithOffsets.h"
#include "ifcpp/IFC4/include/IfcMaterialList.h"
#include "ifcpp/IFC4/include/IfcMaterialProfile.h"
#include "ifcpp/IFC4/include/IfcMaterialProfileSet.h"
#include "ifcpp/IFC4/include/IfcMaterialProfileSetUsage.h"
#include "ifcpp/IFC4/include/IfcMaterialProfileSetUsageTapering.h"
#include "ifcpp/IFC4/include/IfcMaterialProfileWithOffsets.h"
#include "ifcpp/IFC4/include/IfcMaterialProperties.h"
#include "ifcpp/IFC4/include/IfcMaterialRelationship.h"
#include "ifcpp/IFC4/include/IfcMaterialUsageDefinition.h"
#include "ifcpp/IFC4/include/IfcMeasureWithUnit.h"
#include "ifcpp/IFC4/include/IfcMechanicalFastener.h"
#include "ifcpp/IFC4/include/IfcMechanicalFastenerType.h"
#include "ifcpp/IFC4/include/IfcMedicalDevice.h"
#include "ifcpp/IFC4/include/IfcMedicalDeviceType.h"
#include "ifcpp/IFC4/include/IfcMember.h"
#include "ifcpp/IFC4/include/IfcMemberStandardCase.h"
#include "ifcpp/IFC4/include/IfcMemberType.h"
#include "ifcpp/IFC4/include/IfcMetric.h"
#include "ifcpp/IFC4/include/IfcMirroredProfileDef.h"
#include "ifcpp/IFC4/include/IfcMonetaryUnit.h"
#include "ifcpp/IFC4/include/IfcMotorConnection.h"
#include "ifcpp/IFC4/include/IfcMotorConnectionType.h"
#include "ifcpp/IFC4/include/IfcNamedUnit.h"
#include "ifcpp/IFC4/include/IfcObject.h"
#include "ifcpp/IFC4/include/IfcObjectDefinition.h"
#include "ifcpp/IFC4/include/IfcObjectPlacement.h"
#include "ifcpp/IFC4/include/IfcObjective.h"
#include "ifcpp/IFC4/include/IfcOccupant.h"
#include "ifcpp/IFC4/include/IfcOffsetCurve2D.h"
#include "ifcpp/IFC4/include/IfcOffsetCurve3D.h"
#include "ifcpp/IFC4/include/IfcOpenShell.h"
#include "ifcpp/IFC4/include/IfcOpeningElement.h"
#include "ifcpp/IFC4/include/IfcOpeningStandardCase.h"
#include "ifcpp/IFC4/include/IfcOrganization.h"
#include "ifcpp/IFC4/include/IfcOrganizationRelationship.h"
#include "ifcpp/IFC4/include/IfcOrientedEdge.h"
#include "ifcpp/IFC4/include/IfcOuterBoundaryCurve.h"
#include "ifcpp/IFC4/include/IfcOutlet.h"
#include "ifcpp/IFC4/include/IfcOutletType.h"
#include "ifcpp/IFC4/include/IfcOwnerHistory.h"
#include "ifcpp/IFC4/include/IfcParameterizedProfileDef.h"
#include "ifcpp/IFC4/include/IfcPath.h"
#include "ifcpp/IFC4/include/IfcPcurve.h"
#include "ifcpp/IFC4/include/IfcPerformanceHistory.h"
#include "ifcpp/IFC4/include/IfcPermeableCoveringProperties.h"
#include "ifcpp/IFC4/include/IfcPermit.h"
#include "ifcpp/IFC4/include/IfcPerson.h"
#include "ifcpp/IFC4/include/IfcPersonAndOrganization.h"
#include "ifcpp/IFC4/include/IfcPhysicalComplexQuantity.h"
#include "ifcpp/IFC4/include/IfcPhysicalQuantity.h"
#include "ifcpp/IFC4/include/IfcPhysicalSimpleQuantity.h"
#include "ifcpp/IFC4/include/IfcPile.h"
#include "ifcpp/IFC4/include/IfcPileType.h"
#include "ifcpp/IFC4/include/IfcPipeFitting.h"
#include "ifcpp/IFC4/include/IfcPipeFittingType.h"
#include "ifcpp/IFC4/include/IfcPipeSegment.h"
#include "ifcpp/IFC4/include/IfcPipeSegmentType.h"
#include "ifcpp/IFC4/include/IfcPixelTexture.h"
#include "ifcpp/IFC4/include/IfcPlacement.h"
#include "ifcpp/IFC4/include/IfcPlanarBox.h"
#include "ifcpp/IFC4/include/IfcPlanarExtent.h"
#include "ifcpp/IFC4/include/IfcPlane.h"
#include "ifcpp/IFC4/include/IfcPlate.h"
#include "ifcpp/IFC4/include/IfcPlateStandardCase.h"
#include "ifcpp/IFC4/include/IfcPlateType.h"
#include "ifcpp/IFC4/include/IfcPoint.h"
#include "ifcpp/IFC4/include/IfcPointOnCurve.h"
#include "ifcpp/IFC4/include/IfcPointOnSurface.h"
#include "ifcpp/IFC4/include/IfcPolyLoop.h"
#include "ifcpp/IFC4/include/IfcPolygonalBoundedHalfSpace.h"
#include "ifcpp/IFC4/include/IfcPolygonalFaceSet.h"
#include "ifcpp/IFC4/include/IfcPolyline.h"
#include "ifcpp/IFC4/include/IfcPort.h"
#include "ifcpp/IFC4/include/IfcPostalAddress.h"
#include "ifcpp/IFC4/include/IfcPreDefinedColour.h"
#include "ifcpp/IFC4/include/IfcPreDefinedCurveFont.h"
#include "ifcpp/IFC4/include/IfcPreDefinedItem.h"
#include "ifcpp/IFC4/include/IfcPreDefinedProperties.h"
#include "ifcpp/IFC4/include/IfcPreDefinedPropertySet.h"
#include "ifcpp/IFC4/include/IfcPreDefinedTextFont.h"
#include "ifcpp/IFC4/include/IfcPresentationItem.h"
#include "ifcpp/IFC4/include/IfcPresentationLayerAssignment.h"
#include "ifcpp/IFC4/include/IfcPresentationLayerWithStyle.h"
#include "ifcpp/IFC4/include/IfcPresentationStyle.h"
#include "ifcpp/IFC4/include/IfcPresentationStyleAssignment.h"
#include "ifcpp/IFC4/include/IfcProcedure.h"
#include "ifcpp/IFC4/include/IfcProcedureType.h"
#include "ifcpp/IFC4/include/IfcProcess.h"
#include "ifcpp/IFC4/include/IfcProduct.h"
#include "ifcpp/IFC4/include/IfcProductDefinitionShape.h"
#include "ifcpp/IFC4/include/IfcProductRepresentation.h"
#include "ifcpp/IFC4/include/IfcProfileDef.h"
#include "ifcpp/IFC4/include/IfcProfileProperties.h"
#include "ifcpp/IFC4/include/IfcProject.h"
#include "ifcpp/IFC4/include/IfcProjectLibrary.h"
#include "ifcpp/IFC4/include/IfcProjectOrder.h"
#include "ifcpp/IFC4/include/IfcProjectedCRS.h"
#include "ifcpp/IFC4/include/IfcProjectionElement.h"
#include "ifcpp/IFC4/include/IfcProperty.h"
#include "ifcpp/IFC4/include/IfcPropertyAbstraction.h"
#include "ifcpp/IFC4/include/IfcPropertyBoundedValue.h"
#include "ifcpp/IFC4/include/IfcPropertyDefinition.h"
#include "ifcpp/IFC4/include/IfcPropertyDependencyRelationship.h"
#include "ifcpp/IFC4/include/IfcPropertyEnumeratedValue.h"
#include "ifcpp/IFC4/include/IfcPropertyEnumeration.h"
#include "ifcpp/IFC4/include/IfcPropertyListValue.h"
#include "ifcpp/IFC4/include/IfcPropertyReferenceValue.h"
#include "ifcpp/IFC4/include/IfcPropertySet.h"
#include "ifcpp/IFC4/include/IfcPropertySetDefinition.h"
#include "ifcpp/IFC4/include/IfcPropertySetTemplate.h"
#include "ifcpp/IFC4/include/IfcPropertySingleValue.h"
#include "ifcpp/IFC4/include/IfcPropertyTableValue.h"
#include "ifcpp/IFC4/include/IfcPropertyTemplate.h"
#include "ifcpp/IFC4/include/IfcPropertyTemplateDefinition.h"
#include "ifcpp/IFC4/include/IfcProtectiveDevice.h"
#include "ifcpp/IFC4/include/IfcProtectiveDeviceTrippingUnit.h"
#include "ifcpp/IFC4/include/IfcProtectiveDeviceTrippingUnitType.h"
#include "ifcpp/IFC4/include/IfcProtectiveDeviceType.h"
#include "ifcpp/IFC4/include/IfcProxy.h"
#include "ifcpp/IFC4/include/IfcPump.h"
#include "ifcpp/IFC4/include/IfcPumpType.h"
#include "ifcpp/IFC4/include/IfcQuantityArea.h"
#include "ifcpp/IFC4/include/IfcQuantityCount.h"
#include "ifcpp/IFC4/include/IfcQuantityLength.h"
#include "ifcpp/IFC4/include/IfcQuantitySet.h"
#include "ifcpp/IFC4/include/IfcQuantityTime.h"
#include "ifcpp/IFC4/include/IfcQuantityVolume.h"
#include "ifcpp/IFC4/include/IfcQuantityWeight.h"
#include "ifcpp/IFC4/include/IfcRailing.h"
#include "ifcpp/IFC4/include/IfcRailingType.h"
#include "ifcpp/IFC4/include/IfcRamp.h"
#include "ifcpp/IFC4/include/IfcRampFlight.h"
#include "ifcpp/IFC4/include/IfcRampFlightType.h"
#include "ifcpp/IFC4/include/IfcRampType.h"
#include "ifcpp/IFC4/include/IfcRationalBSplineCurveWithKnots.h"
#include "ifcpp/IFC4/include/IfcRationalBSplineSurfaceWithKnots.h"
#include "ifcpp/IFC4/include/IfcRectangleHollowProfileDef.h"
#include "ifcpp/IFC4/include/IfcRectangleProfileDef.h"
#include "ifcpp/IFC4/include/IfcRectangularPyramid.h"
#include "ifcpp/IFC4/include/IfcRectangularTrimmedSurface.h"
#include "ifcpp/IFC4/include/IfcRecurrencePattern.h"
#include "ifcpp/IFC4/include/IfcReference.h"
#include "ifcpp/IFC4/include/IfcRegularTimeSeries.h"
#include "ifcpp/IFC4/include/IfcReinforcementBarProperties.h"
#include "ifcpp/IFC4/include/IfcReinforcementDefinitionProperties.h"
#include "ifcpp/IFC4/include/IfcReinforcingBar.h"
#include "ifcpp/IFC4/include/IfcReinforcingBarType.h"
#include "ifcpp/IFC4/include/IfcReinforcingElement.h"
#include "ifcpp/IFC4/include/IfcReinforcingElementType.h"
#include "ifcpp/IFC4/include/IfcReinforcingMesh.h"
#include "ifcpp/IFC4/include/IfcReinforcingMeshType.h"
#include "ifcpp/IFC4/include/IfcRelAggregates.h"
#include "ifcpp/IFC4/include/IfcRelAssigns.h"
#include "ifcpp/IFC4/include/IfcRelAssignsToActor.h"
#include "ifcpp/IFC4/include/IfcRelAssignsToControl.h"
#include "ifcpp/IFC4/include/IfcRelAssignsToGroup.h"
#include "ifcpp/IFC4/include/IfcRelAssignsToGroupByFactor.h"
#include "ifcpp/IFC4/include/IfcRelAssignsToProcess.h"
#include "ifcpp/IFC4/include/IfcRelAssignsToProduct.h"
#include "ifcpp/IFC4/include/IfcRelAssignsToResource.h"
#include "ifcpp/IFC4/include/IfcRelAssociates.h"
#include "ifcpp/IFC4/include/IfcRelAssociatesApproval.h"
#include "ifcpp/IFC4/include/IfcRelAssociatesClassification.h"
#include "ifcpp/IFC4/include/IfcRelAssociatesConstraint.h"
#include "ifcpp/IFC4/include/IfcRelAssociatesDocument.h"
#include "ifcpp/IFC4/include/IfcRelAssociatesLibrary.h"
#include "ifcpp/IFC4/include/IfcRelAssociatesMaterial.h"
#include "ifcpp/IFC4/include/IfcRelConnects.h"
#include "ifcpp/IFC4/include/IfcRelConnectsElements.h"
#include "ifcpp/IFC4/include/IfcRelConnectsPathElements.h"
#include "ifcpp/IFC4/include/IfcRelConnectsPortToElement.h"
#include "ifcpp/IFC4/include/IfcRelConnectsPorts.h"
#include "ifcpp/IFC4/include/IfcRelConnectsStructuralActivity.h"
#include "ifcpp/IFC4/include/IfcRelConnectsStructuralMember.h"
#include "ifcpp/IFC4/include/IfcRelConnectsWithEccentricity.h"
#include "ifcpp/IFC4/include/IfcRelConnectsWithRealizingElements.h"
#include "ifcpp/IFC4/include/IfcRelContainedInSpatialStructure.h"
#include "ifcpp/IFC4/include/IfcRelCoversBldgElements.h"
#include "ifcpp/IFC4/include/IfcRelCoversSpaces.h"
#include "ifcpp/IFC4/include/IfcRelDeclares.h"
#include "ifcpp/IFC4/include/IfcRelDecomposes.h"
#include "ifcpp/IFC4/include/IfcRelDefines.h"
#include "ifcpp/IFC4/include/IfcRelDefinesByObject.h"
#include "ifcpp/IFC4/include/IfcRelDefinesByProperties.h"
#include "ifcpp/IFC4/include/IfcRelDefinesByTemplate.h"
#include "ifcpp/IFC4/include/IfcRelDefinesByType.h"
#include "ifcpp/IFC4/include/IfcRelFillsElement.h"
#include "ifcpp/IFC4/include/IfcRelFlowControlElements.h"
#include "ifcpp/IFC4/include/IfcRelInterferesElements.h"
#include "ifcpp/IFC4/include/IfcRelNests.h"
#include "ifcpp/IFC4/include/IfcRelProjectsElement.h"
#include "ifcpp/IFC4/include/IfcRelReferencedInSpatialStructure.h"
#include "ifcpp/IFC4/include/IfcRelSequence.h"
#include "ifcpp/IFC4/include/IfcRelServicesBuildings.h"
#include "ifcpp/IFC4/include/IfcRelSpaceBoundary.h"
#include "ifcpp/IFC4/include/IfcRelSpaceBoundary1stLevel.h"
#include "ifcpp/IFC4/include/IfcRelSpaceBoundary2ndLevel.h"
#include "ifcpp/IFC4/include/IfcRelVoidsElement.h"
#include "ifcpp/IFC4/include/IfcRelationship.h"
#include "ifcpp/IFC4/include/IfcReparametrisedCompositeCurveSegment.h"
#include "ifcpp/IFC4/include/IfcRepresentation.h"
#include "ifcpp/IFC4/include/IfcRepresentationContext.h"
#include "ifcpp/IFC4/include/IfcRepresentationItem.h"
#include "ifcpp/IFC4/include/IfcRepresentationMap.h"
#include "ifcpp/IFC4/include/IfcResource.h"
#include "ifcpp/IFC4/include/IfcResourceApprovalRelationship.h"
#include "ifcpp/IFC4/include/IfcResourceConstraintRelationship.h"
#include "ifcpp/IFC4/include/IfcResourceLevelRelationship.h"
#include "ifcpp/IFC4/include/IfcResourceTime.h"
#include "ifcpp/IFC4/include/IfcRevolvedAreaSolid.h"
#include "ifcpp/IFC4/include/IfcRevolvedAreaSolidTapered.h"
#include "ifcpp/IFC4/include/IfcRightCircularCone.h"
#include "ifcpp/IFC4/include/IfcRightCircularCylinder.h"
#include "ifcpp/IFC4/include/IfcRoof.h"
#include "ifcpp/IFC4/include/IfcRoofType.h"
#include "ifcpp/IFC4/include/IfcRoot.h"
#include "ifcpp/IFC4/include/IfcRoundedRectangleProfileDef.h"
#include "ifcpp/IFC4/include/IfcSIUnit.h"
#include "ifcpp/IFC4/include/IfcSanitaryTerminal.h"
#include "ifcpp/IFC4/include/IfcSanitaryTerminalType.h"
#include "ifcpp/IFC4/include/IfcSchedulingTime.h"
#include "ifcpp/IFC4/include/IfcSeamCurve.h"
#include "ifcpp/IFC4/include/IfcSectionProperties.h"
#include "ifcpp/IFC4/include/IfcSectionReinforcementProperties.h"
#include "ifcpp/IFC4/include/IfcSectionedSpine.h"
#include "ifcpp/IFC4/include/IfcSensor.h"
#include "ifcpp/IFC4/include/IfcSensorType.h"
#include "ifcpp/IFC4/include/IfcShadingDevice.h"
#include "ifcpp/IFC4/include/IfcShadingDeviceType.h"
#include "ifcpp/IFC4/include/IfcShapeAspect.h"
#include "ifcpp/IFC4/include/IfcShapeModel.h"
#include "ifcpp/IFC4/include/IfcShapeRepresentation.h"
#include "ifcpp/IFC4/include/IfcShellBasedSurfaceModel.h"
#include "ifcpp/IFC4/include/IfcSimpleProperty.h"
#include "ifcpp/IFC4/include/IfcSimplePropertyTemplate.h"
#include "ifcpp/IFC4/include/IfcSite.h"
#include "ifcpp/IFC4/include/IfcSlab.h"
#include "ifcpp/IFC4/include/IfcSlabElementedCase.h"
#include "ifcpp/IFC4/include/IfcSlabStandardCase.h"
#include "ifcpp/IFC4/include/IfcSlabType.h"
#include "ifcpp/IFC4/include/IfcSlippageConnectionCondition.h"
#include "ifcpp/IFC4/include/IfcSolarDevice.h"
#include "ifcpp/IFC4/include/IfcSolarDeviceType.h"
#include "ifcpp/IFC4/include/IfcSolidModel.h"
#include "ifcpp/IFC4/include/IfcSpace.h"
#include "ifcpp/IFC4/include/IfcSpaceHeater.h"
#include "ifcpp/IFC4/include/IfcSpaceHeaterType.h"
#include "ifcpp/IFC4/include/IfcSpaceType.h"
#include "ifcpp/IFC4/include/IfcSpatialElement.h"
#include "ifcpp/IFC4/include/IfcSpatialElementType.h"
#include "ifcpp/IFC4/include/IfcSpatialStructureElement.h"
#include "ifcpp/IFC4/include/IfcSpatialStructureElementType.h"
#include "ifcpp/IFC4/include/IfcSpatialZone.h"
#include "ifcpp/IFC4/include/IfcSpatialZoneType.h"
#include "ifcpp/IFC4/include/IfcSphere.h"
#include "ifcpp/IFC4/include/IfcSphericalSurface.h"
#include "ifcpp/IFC4/include/IfcStackTerminal.h"
#include "ifcpp/IFC4/include/IfcStackTerminalType.h"
#include "ifcpp/IFC4/include/IfcStair.h"
#include "ifcpp/IFC4/include/IfcStairFlight.h"
#include "ifcpp/IFC4/include/IfcStairFlightType.h"
#include "ifcpp/IFC4/include/IfcStairType.h"
#include "ifcpp/IFC4/include/IfcStructuralAction.h"
#include "ifcpp/IFC4/include/IfcStructuralActivity.h"
#include "ifcpp/IFC4/include/IfcStructuralAnalysisModel.h"
#include "ifcpp/IFC4/include/IfcStructuralConnection.h"
#include "ifcpp/IFC4/include/IfcStructuralConnectionCondition.h"
#include "ifcpp/IFC4/include/IfcStructuralCurveAction.h"
#include "ifcpp/IFC4/include/IfcStructuralCurveConnection.h"
#include "ifcpp/IFC4/include/IfcStructuralCurveMember.h"
#include "ifcpp/IFC4/include/IfcStructuralCurveMemberVarying.h"
#include "ifcpp/IFC4/include/IfcStructuralCurveReaction.h"
#include "ifcpp/IFC4/include/IfcStructuralItem.h"
#include "ifcpp/IFC4/include/IfcStructuralLinearAction.h"
#include "ifcpp/IFC4/include/IfcStructuralLoad.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadCase.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadConfiguration.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadGroup.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadLinearForce.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadOrResult.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadPlanarForce.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadSingleDisplacement.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadSingleDisplacementDistortion.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadSingleForce.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadSingleForceWarping.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadStatic.h"
#include "ifcpp/IFC4/include/IfcStructuralLoadTemperature.h"
#include "ifcpp/IFC4/include/IfcStructuralMember.h"
#include "ifcpp/IFC4/include/IfcStructuralPlanarAction.h"
#include "ifcpp/IFC4/include/IfcStructuralPointAction.h"
#include "ifcpp/IFC4/include/IfcStructuralPointConnection.h"
#include "ifcpp/IFC4/include/IfcStructuralPointReaction.h"
#include "ifcpp/IFC4/include/IfcStructuralReaction.h"
#include "ifcpp/IFC4/include/IfcStructuralResultGroup.h"
#include "ifcpp/IFC4/include/IfcStructuralSurfaceAction.h"
#include "ifcpp/IFC4/include/IfcStructuralSurfaceConnection.h"
#include "ifcpp/IFC4/include/IfcStructuralSurfaceMember.h"
#include "ifcpp/IFC4/include/IfcStructuralSurfaceMemberVarying.h"
#include "ifcpp/IFC4/include/IfcStructuralSurfaceReaction.h"
#include "ifcpp/IFC4/include/IfcStyleModel.h"
#include "ifcpp/IFC4/include/IfcStyledItem.h"
#include "ifcpp/IFC4/include/IfcStyledRepresentation.h"
#include "ifcpp/IFC4/include/IfcSubContractResource.h"
#include "ifcpp/IFC4/include/IfcSubContractResourceType.h"
#include "ifcpp/IFC4/include/IfcSubedge.h"
#include "ifcpp/IFC4/include/IfcSurface.h"
#include "ifcpp/IFC4/include/IfcSurfaceCurve.h"
#include "ifcpp/IFC4/include/IfcSurfaceCurveSweptAreaSolid.h"
#include "ifcpp/IFC4/include/IfcSurfaceFeature.h"
#include "ifcpp/IFC4/include/IfcSurfaceOfLinearExtrusion.h"
#include "ifcpp/IFC4/include/IfcSurfaceOfRevolution.h"
#include "ifcpp/IFC4/include/IfcSurfaceReinforcementArea.h"
#include "ifcpp/IFC4/include/IfcSurfaceStyle.h"
#include "ifcpp/IFC4/include/IfcSurfaceStyleLighting.h"
#include "ifcpp/IFC4/include/IfcSurfaceStyleRefraction.h"
#include "ifcpp/IFC4/include/IfcSurfaceStyleRendering.h"
#include "ifcpp/IFC4/include/IfcSurfaceStyleShading.h"
#include "ifcpp/IFC4/include/IfcSurfaceStyleWithTextures.h"
#include "ifcpp/IFC4/include/IfcSurfaceTexture.h"
#include "ifcpp/IFC4/include/IfcSweptAreaSolid.h"
#include "ifcpp/IFC4/include/IfcSweptDiskSolid.h"
#include "ifcpp/IFC4/include/IfcSweptDiskSolidPolygonal.h"
#include "ifcpp/IFC4/include/IfcSweptSurface.h"
#include "ifcpp/IFC4/include/IfcSwitchingDevice.h"
#include "ifcpp/IFC4/include/IfcSwitchingDeviceType.h"
#include "ifcpp/IFC4/include/IfcSystem.h"
#include "ifcpp/IFC4/include/IfcSystemFurnitureElement.h"
#include "ifcpp/IFC4/include/IfcSystemFurnitureElementType.h"
#include "ifcpp/IFC4/include/IfcTShapeProfileDef.h"
#include "ifcpp/IFC4/include/IfcTable.h"
#include "ifcpp/IFC4/include/IfcTableColumn.h"
#include "ifcpp/IFC4/include/IfcTableRow.h"
#include "ifcpp/IFC4/include/IfcTank.h"
#include "ifcpp/IFC4/include/IfcTankType.h"
#include "ifcpp/IFC4/include/IfcTask.h"
#include "ifcpp/IFC4/include/IfcTaskTime.h"
#include "ifcpp/IFC4/include/IfcTaskTimeRecurring.h"
#include "ifcpp/IFC4/include/IfcTaskType.h"
#include "ifcpp/IFC4/include/IfcTelecomAddress.h"
#include "ifcpp/IFC4/include/IfcTendon.h"
#include "ifcpp/IFC4/include/IfcTendonAnchor.h"
#include "ifcpp/IFC4/include/IfcTendonAnchorType.h"
#include "ifcpp/IFC4/include/IfcTendonType.h"
#include "ifcpp/IFC4/include/IfcTessellatedFaceSet.h"
#include "ifcpp/IFC4/include/IfcTessellatedItem.h"
#include "ifcpp/IFC4/include/IfcTextLiteral.h"
#include "ifcpp/IFC4/include/IfcTextLiteralWithExtent.h"
#include "ifcpp/IFC4/include/IfcTextStyle.h"
#include "ifcpp/IFC4/include/IfcTextStyleFontModel.h"
#include "ifcpp/IFC4/include/IfcTextStyleForDefinedFont.h"
#include "ifcpp/IFC4/include/IfcTextStyleTextModel.h"
#include "ifcpp/IFC4/include/IfcTextureCoordinate.h"
#include "ifcpp/IFC4/include/IfcTextureCoordinateGenerator.h"
#include "ifcpp/IFC4/include/IfcTextureMap.h"
#include "ifcpp/IFC4/include/IfcTextureVertex.h"
#include "ifcpp/IFC4/include/IfcTextureVertexList.h"
#include "ifcpp/IFC4/include/IfcTimePeriod.h"
#include "ifcpp/IFC4/include/IfcTimeSeries.h"
#include "ifcpp/IFC4/include/IfcTimeSeriesValue.h"
#include "ifcpp/IFC4/include/IfcTopologicalRepresentationItem.h"
#include "ifcpp/IFC4/include/IfcTopologyRepresentation.h"
#include "ifcpp/IFC4/include/IfcToroidalSurface.h"
#include "ifcpp/IFC4/include/IfcTransformer.h"
#include "ifcpp/IFC4/include/IfcTransformerType.h"
#include "ifcpp/IFC4/include/IfcTransportElement.h"
#include "ifcpp/IFC4/include/IfcTransportElementType.h"
#include "ifcpp/IFC4/include/IfcTrapeziumProfileDef.h"
#include "ifcpp/IFC4/include/IfcTriangulatedFaceSet.h"
#include "ifcpp/IFC4/include/IfcTrimmedCurve.h"
#include "ifcpp/IFC4/include/IfcTubeBundle.h"
#include "ifcpp/IFC4/include/IfcTubeBundleType.h"
#include "ifcpp/IFC4/include/IfcTypeObject.h"
#include "ifcpp/IFC4/include/IfcTypeProcess.h"
#include "ifcpp/IFC4/include/IfcTypeProduct.h"
#include "ifcpp/IFC4/include/IfcTypeResource.h"
#include "ifcpp/IFC4/include/IfcUShapeProfileDef.h"
#include "ifcpp/IFC4/include/IfcUnitAssignment.h"
#include "ifcpp/IFC4/include/IfcUnitaryControlElement.h"
#include "ifcpp/IFC4/include/IfcUnitaryControlElementType.h"
#include "ifcpp/IFC4/include/IfcUnitaryEquipment.h"
#include "ifcpp/IFC4/include/IfcUnitaryEquipmentType.h"
#include "ifcpp/IFC4/include/IfcValve.h"
#include "ifcpp/IFC4/include/IfcValveType.h"
#include "ifcpp/IFC4/include/IfcVector.h"
#include "ifcpp/IFC4/include/IfcVertex.h"
#include "ifcpp/IFC4/include/IfcVertexLoop.h"
#include "ifcpp/IFC4/include/IfcVertexPoint.h"
#include "ifcpp/IFC4/include/IfcVibrationIsolator.h"
#include "ifcpp/IFC4/include/IfcVibrationIsolatorType.h"
#include "ifcpp/IFC4/include/IfcVirtualElement.h"
#include "ifcpp/IFC4/include/IfcVirtualGridIntersection.h"
#include "ifcpp/IFC4/include/IfcVoidingFeature.h"
#include "ifcpp/IFC4/include/IfcWall.h"
#include "ifcpp/IFC4/include/IfcWallElementedCase.h"
#include "ifcpp/IFC4/include/IfcWallStandardCase.h"
#include "ifcpp/IFC4/include/IfcWallType.h"
#include "ifcpp/IFC4/include/IfcWasteTerminal.h"
#include "ifcpp/IFC4/include/IfcWasteTerminalType.h"
#include "ifcpp/IFC4/include/IfcWindow.h"
#include "ifcpp/IFC4/include/IfcWindowLiningProperties.h"
#include "ifcpp/IFC4/include/IfcWindowPanelProperties.h"
#include "ifcpp/IFC4/include/IfcWindowStandardCase.h"
#include "ifcpp/IFC4/include/IfcWindowStyle.h"
#include "ifcpp/IFC4/include/IfcWindowType.h"
#include "ifcpp/IFC4/include/IfcWorkCalendar.h"
#include "ifcpp/IFC4/include/IfcWorkControl.h"
#include "ifcpp/IFC4/include/IfcWorkPlan.h"
#include "ifcpp/IFC4/include/IfcWorkSchedule.h"
#include "ifcpp/IFC4/include/IfcWorkTime.h"
#include "ifcpp/IFC4/include/IfcZShapeProfileDef.h"
#include "ifcpp/IFC4/include/IfcZone.h"
#include "EntityFactory.h"

	static std::map<std::string, std::function<BuildingEntity*( void )> > entity_factory_map = {
{ "IFCACTIONREQUEST", []()->BuildingEntity* { return new IfcActionRequest(); } },
{ "IFCACTOR", []()->BuildingEntity* { return new IfcActor(); } },
{ "IFCACTORROLE", []()->BuildingEntity* { return new IfcActorRole(); } },
{ "IFCACTUATOR", []()->BuildingEntity* { return new IfcActuator(); } },
{ "IFCACTUATORTYPE", []()->BuildingEntity* { return new IfcActuatorType(); } },
{ "IFCADDRESS", []()->BuildingEntity* { return new IfcAddress(); } },
{ "IFCADVANCEDBREP", []()->BuildingEntity* { return new IfcAdvancedBrep(); } },
{ "IFCADVANCEDBREPWITHVOIDS", []()->BuildingEntity* { return new IfcAdvancedBrepWithVoids(); } },
{ "IFCADVANCEDFACE", []()->BuildingEntity* { return new IfcAdvancedFace(); } },
{ "IFCAIRTERMINAL", []()->BuildingEntity* { return new IfcAirTerminal(); } },
{ "IFCAIRTERMINALBOX", []()->BuildingEntity* { return new IfcAirTerminalBox(); } },
{ "IFCAIRTERMINALBOXTYPE", []()->BuildingEntity* { return new IfcAirTerminalBoxType(); } },
{ "IFCAIRTERMINALTYPE", []()->BuildingEntity* { return new IfcAirTerminalType(); } },
{ "IFCAIRTOAIRHEATRECOVERY", []()->BuildingEntity* { return new IfcAirToAirHeatRecovery(); } },
{ "IFCAIRTOAIRHEATRECOVERYTYPE", []()->BuildingEntity* { return new IfcAirToAirHeatRecoveryType(); } },
{ "IFCALARM", []()->BuildingEntity* { return new IfcAlarm(); } },
{ "IFCALARMTYPE", []()->BuildingEntity* { return new IfcAlarmType(); } },
{ "IFCANNOTATION", []()->BuildingEntity* { return new IfcAnnotation(); } },
{ "IFCANNOTATIONFILLAREA", []()->BuildingEntity* { return new IfcAnnotationFillArea(); } },
{ "IFCAPPLICATION", []()->BuildingEntity* { return new IfcApplication(); } },
{ "IFCAPPLIEDVALUE", []()->BuildingEntity* { return new IfcAppliedValue(); } },
{ "IFCAPPROVAL", []()->BuildingEntity* { return new IfcApproval(); } },
{ "IFCAPPROVALRELATIONSHIP", []()->BuildingEntity* { return new IfcApprovalRelationship(); } },
{ "IFCARBITRARYCLOSEDPROFILEDEF", []()->BuildingEntity* { return new IfcArbitraryClosedProfileDef(); } },
{ "IFCARBITRARYOPENPROFILEDEF", []()->BuildingEntity* { return new IfcArbitraryOpenProfileDef(); } },
{ "IFCARBITRARYPROFILEDEFWITHVOIDS", []()->BuildingEntity* { return new IfcArbitraryProfileDefWithVoids(); } },
{ "IFCASSET", []()->BuildingEntity* { return new IfcAsset(); } },
{ "IFCASYMMETRICISHAPEPROFILEDEF", []()->BuildingEntity* { return new IfcAsymmetricIShapeProfileDef(); } },
{ "IFCAUDIOVISUALAPPLIANCE", []()->BuildingEntity* { return new IfcAudioVisualAppliance(); } },
{ "IFCAUDIOVISUALAPPLIANCETYPE", []()->BuildingEntity* { return new IfcAudioVisualApplianceType(); } },
{ "IFCAXIS1PLACEMENT", []()->BuildingEntity* { return new IfcAxis1Placement(); } },
{ "IFCAXIS2PLACEMENT2D", []()->BuildingEntity* { return new IfcAxis2Placement2D(); } },
{ "IFCAXIS2PLACEMENT3D", []()->BuildingEntity* { return new IfcAxis2Placement3D(); } },
{ "IFCBSPLINECURVE", []()->BuildingEntity* { return new IfcBSplineCurve(); } },
{ "IFCBSPLINECURVEWITHKNOTS", []()->BuildingEntity* { return new IfcBSplineCurveWithKnots(); } },
{ "IFCBSPLINESURFACE", []()->BuildingEntity* { return new IfcBSplineSurface(); } },
{ "IFCBSPLINESURFACEWITHKNOTS", []()->BuildingEntity* { return new IfcBSplineSurfaceWithKnots(); } },
{ "IFCBEAM", []()->BuildingEntity* { return new IfcBeam(); } },
{ "IFCBEAMSTANDARDCASE", []()->BuildingEntity* { return new IfcBeamStandardCase(); } },
{ "IFCBEAMTYPE", []()->BuildingEntity* { return new IfcBeamType(); } },
{ "IFCBLOBTEXTURE", []()->BuildingEntity* { return new IfcBlobTexture(); } },
{ "IFCBLOCK", []()->BuildingEntity* { return new IfcBlock(); } },
{ "IFCBOILER", []()->BuildingEntity* { return new IfcBoiler(); } },
{ "IFCBOILERTYPE", []()->BuildingEntity* { return new IfcBoilerType(); } },
{ "IFCBOOLEANCLIPPINGRESULT", []()->BuildingEntity* { return new IfcBooleanClippingResult(); } },
{ "IFCBOOLEANRESULT", []()->BuildingEntity* { return new IfcBooleanResult(); } },
{ "IFCBOUNDARYCONDITION", []()->BuildingEntity* { return new IfcBoundaryCondition(); } },
{ "IFCBOUNDARYCURVE", []()->BuildingEntity* { return new IfcBoundaryCurve(); } },
{ "IFCBOUNDARYEDGECONDITION", []()->BuildingEntity* { return new IfcBoundaryEdgeCondition(); } },
{ "IFCBOUNDARYFACECONDITION", []()->BuildingEntity* { return new IfcBoundaryFaceCondition(); } },
{ "IFCBOUNDARYNODECONDITION", []()->BuildingEntity* { return new IfcBoundaryNodeCondition(); } },
{ "IFCBOUNDARYNODECONDITIONWARPING", []()->BuildingEntity* { return new IfcBoundaryNodeConditionWarping(); } },
{ "IFCBOUNDEDCURVE", []()->BuildingEntity* { return new IfcBoundedCurve(); } },
{ "IFCBOUNDEDSURFACE", []()->BuildingEntity* { return new IfcBoundedSurface(); } },
{ "IFCBOUNDINGBOX", []()->BuildingEntity* { return new IfcBoundingBox(); } },
{ "IFCBOXEDHALFSPACE", []()->BuildingEntity* { return new IfcBoxedHalfSpace(); } },
{ "IFCBUILDING", []()->BuildingEntity* { return new IfcBuilding(); } },
{ "IFCBUILDINGELEMENT", []()->BuildingEntity* { return new IfcBuildingElement(); } },
{ "IFCBUILDINGELEMENTPART", []()->BuildingEntity* { return new IfcBuildingElementPart(); } },
{ "IFCBUILDINGELEMENTPARTTYPE", []()->BuildingEntity* { return new IfcBuildingElementPartType(); } },
{ "IFCBUILDINGELEMENTPROXY", []()->BuildingEntity* { return new IfcBuildingElementProxy(); } },
{ "IFCBUILDINGELEMENTPROXYTYPE", []()->BuildingEntity* { return new IfcBuildingElementProxyType(); } },
{ "IFCBUILDINGELEMENTTYPE", []()->BuildingEntity* { return new IfcBuildingElementType(); } },
{ "IFCBUILDINGSTOREY", []()->BuildingEntity* { return new IfcBuildingStorey(); } },
{ "IFCBUILDINGSYSTEM", []()->BuildingEntity* { return new IfcBuildingSystem(); } },
{ "IFCBURNER", []()->BuildingEntity* { return new IfcBurner(); } },
{ "IFCBURNERTYPE", []()->BuildingEntity* { return new IfcBurnerType(); } },
{ "IFCCSHAPEPROFILEDEF", []()->BuildingEntity* { return new IfcCShapeProfileDef(); } },
{ "IFCCABLECARRIERFITTING", []()->BuildingEntity* { return new IfcCableCarrierFitting(); } },
{ "IFCCABLECARRIERFITTINGTYPE", []()->BuildingEntity* { return new IfcCableCarrierFittingType(); } },
{ "IFCCABLECARRIERSEGMENT", []()->BuildingEntity* { return new IfcCableCarrierSegment(); } },
{ "IFCCABLECARRIERSEGMENTTYPE", []()->BuildingEntity* { return new IfcCableCarrierSegmentType(); } },
{ "IFCCABLEFITTING", []()->BuildingEntity* { return new IfcCableFitting(); } },
{ "IFCCABLEFITTINGTYPE", []()->BuildingEntity* { return new IfcCableFittingType(); } },
{ "IFCCABLESEGMENT", []()->BuildingEntity* { return new IfcCableSegment(); } },
{ "IFCCABLESEGMENTTYPE", []()->BuildingEntity* { return new IfcCableSegmentType(); } },
{ "IFCCARTESIANPOINT", []()->BuildingEntity* { return new IfcCartesianPoint(); } },
{ "IFCCARTESIANPOINTLIST", []()->BuildingEntity* { return new IfcCartesianPointList(); } },
{ "IFCCARTESIANPOINTLIST2D", []()->BuildingEntity* { return new IfcCartesianPointList2D(); } },
{ "IFCCARTESIANPOINTLIST3D", []()->BuildingEntity* { return new IfcCartesianPointList3D(); } },
{ "IFCCARTESIANTRANSFORMATIONOPERATOR", []()->BuildingEntity* { return new IfcCartesianTransformationOperator(); } },
{ "IFCCARTESIANTRANSFORMATIONOPERATOR2D", []()->BuildingEntity* { return new IfcCartesianTransformationOperator2D(); } },
{ "IFCCARTESIANTRANSFORMATIONOPERATOR2DNONUNIFORM", []()->BuildingEntity* { return new IfcCartesianTransformationOperator2DnonUniform(); } },
{ "IFCCARTESIANTRANSFORMATIONOPERATOR3D", []()->BuildingEntity* { return new IfcCartesianTransformationOperator3D(); } },
{ "IFCCARTESIANTRANSFORMATIONOPERATOR3DNONUNIFORM", []()->BuildingEntity* { return new IfcCartesianTransformationOperator3DnonUniform(); } },
{ "IFCCENTERLINEPROFILEDEF", []()->BuildingEntity* { return new IfcCenterLineProfileDef(); } },
{ "IFCCHILLER", []()->BuildingEntity* { return new IfcChiller(); } },
{ "IFCCHILLERTYPE", []()->BuildingEntity* { return new IfcChillerType(); } },
{ "IFCCHIMNEY", []()->BuildingEntity* { return new IfcChimney(); } },
{ "IFCCHIMNEYTYPE", []()->BuildingEntity* { return new IfcChimneyType(); } },
{ "IFCCIRCLE", []()->BuildingEntity* { return new IfcCircle(); } },
{ "IFCCIRCLEHOLLOWPROFILEDEF", []()->BuildingEntity* { return new IfcCircleHollowProfileDef(); } },
{ "IFCCIRCLEPROFILEDEF", []()->BuildingEntity* { return new IfcCircleProfileDef(); } },
{ "IFCCIVILELEMENT", []()->BuildingEntity* { return new IfcCivilElement(); } },
{ "IFCCIVILELEMENTTYPE", []()->BuildingEntity* { return new IfcCivilElementType(); } },
{ "IFCCLASSIFICATION", []()->BuildingEntity* { return new IfcClassification(); } },
{ "IFCCLASSIFICATIONREFERENCE", []()->BuildingEntity* { return new IfcClassificationReference(); } },
{ "IFCCLOSEDSHELL", []()->BuildingEntity* { return new IfcClosedShell(); } },
{ "IFCCOIL", []()->BuildingEntity* { return new IfcCoil(); } },
{ "IFCCOILTYPE", []()->BuildingEntity* { return new IfcCoilType(); } },
{ "IFCCOLOURRGB", []()->BuildingEntity* { return new IfcColourRgb(); } },
{ "IFCCOLOURRGBLIST", []()->BuildingEntity* { return new IfcColourRgbList(); } },
{ "IFCCOLOURSPECIFICATION", []()->BuildingEntity* { return new IfcColourSpecification(); } },
{ "IFCCOLUMN", []()->BuildingEntity* { return new IfcColumn(); } },
{ "IFCCOLUMNSTANDARDCASE", []()->BuildingEntity* { return new IfcColumnStandardCase(); } },
{ "IFCCOLUMNTYPE", []()->BuildingEntity* { return new IfcColumnType(); } },
{ "IFCCOMMUNICATIONSAPPLIANCE", []()->BuildingEntity* { return new IfcCommunicationsAppliance(); } },
{ "IFCCOMMUNICATIONSAPPLIANCETYPE", []()->BuildingEntity* { return new IfcCommunicationsApplianceType(); } },
{ "IFCCOMPLEXPROPERTY", []()->BuildingEntity* { return new IfcComplexProperty(); } },
{ "IFCCOMPLEXPROPERTYTEMPLATE", []()->BuildingEntity* { return new IfcComplexPropertyTemplate(); } },
{ "IFCCOMPOSITECURVE", []()->BuildingEntity* { return new IfcCompositeCurve(); } },
{ "IFCCOMPOSITECURVEONSURFACE", []()->BuildingEntity* { return new IfcCompositeCurveOnSurface(); } },
{ "IFCCOMPOSITECURVESEGMENT", []()->BuildingEntity* { return new IfcCompositeCurveSegment(); } },
{ "IFCCOMPOSITEPROFILEDEF", []()->BuildingEntity* { return new IfcCompositeProfileDef(); } },
{ "IFCCOMPRESSOR", []()->BuildingEntity* { return new IfcCompressor(); } },
{ "IFCCOMPRESSORTYPE", []()->BuildingEntity* { return new IfcCompressorType(); } },
{ "IFCCONDENSER", []()->BuildingEntity* { return new IfcCondenser(); } },
{ "IFCCONDENSERTYPE", []()->BuildingEntity* { return new IfcCondenserType(); } },
{ "IFCCONIC", []()->BuildingEntity* { return new IfcConic(); } },
{ "IFCCONNECTEDFACESET", []()->BuildingEntity* { return new IfcConnectedFaceSet(); } },
{ "IFCCONNECTIONCURVEGEOMETRY", []()->BuildingEntity* { return new IfcConnectionCurveGeometry(); } },
{ "IFCCONNECTIONGEOMETRY", []()->BuildingEntity* { return new IfcConnectionGeometry(); } },
{ "IFCCONNECTIONPOINTECCENTRICITY", []()->BuildingEntity* { return new IfcConnectionPointEccentricity(); } },
{ "IFCCONNECTIONPOINTGEOMETRY", []()->BuildingEntity* { return new IfcConnectionPointGeometry(); } },
{ "IFCCONNECTIONSURFACEGEOMETRY", []()->BuildingEntity* { return new IfcConnectionSurfaceGeometry(); } },
{ "IFCCONNECTIONVOLUMEGEOMETRY", []()->BuildingEntity* { return new IfcConnectionVolumeGeometry(); } },
{ "IFCCONSTRAINT", []()->BuildingEntity* { return new IfcConstraint(); } },
{ "IFCCONSTRUCTIONEQUIPMENTRESOURCE", []()->BuildingEntity* { return new IfcConstructionEquipmentResource(); } },
{ "IFCCONSTRUCTIONEQUIPMENTRESOURCETYPE", []()->BuildingEntity* { return new IfcConstructionEquipmentResourceType(); } },
{ "IFCCONSTRUCTIONMATERIALRESOURCE", []()->BuildingEntity* { return new IfcConstructionMaterialResource(); } },
{ "IFCCONSTRUCTIONMATERIALRESOURCETYPE", []()->BuildingEntity* { return new IfcConstructionMaterialResourceType(); } },
{ "IFCCONSTRUCTIONPRODUCTRESOURCE", []()->BuildingEntity* { return new IfcConstructionProductResource(); } },
{ "IFCCONSTRUCTIONPRODUCTRESOURCETYPE", []()->BuildingEntity* { return new IfcConstructionProductResourceType(); } },
{ "IFCCONSTRUCTIONRESOURCE", []()->BuildingEntity* { return new IfcConstructionResource(); } },
{ "IFCCONSTRUCTIONRESOURCETYPE", []()->BuildingEntity* { return new IfcConstructionResourceType(); } },
{ "IFCCONTEXT", []()->BuildingEntity* { return new IfcContext(); } },
{ "IFCCONTEXTDEPENDENTUNIT", []()->BuildingEntity* { return new IfcContextDependentUnit(); } },
{ "IFCCONTROL", []()->BuildingEntity* { return new IfcControl(); } },
{ "IFCCONTROLLER", []()->BuildingEntity* { return new IfcController(); } },
{ "IFCCONTROLLERTYPE", []()->BuildingEntity* { return new IfcControllerType(); } },
{ "IFCCONVERSIONBASEDUNIT", []()->BuildingEntity* { return new IfcConversionBasedUnit(); } },
{ "IFCCONVERSIONBASEDUNITWITHOFFSET", []()->BuildingEntity* { return new IfcConversionBasedUnitWithOffset(); } },
{ "IFCCOOLEDBEAM", []()->BuildingEntity* { return new IfcCooledBeam(); } },
{ "IFCCOOLEDBEAMTYPE", []()->BuildingEntity* { return new IfcCooledBeamType(); } },
{ "IFCCOOLINGTOWER", []()->BuildingEntity* { return new IfcCoolingTower(); } },
{ "IFCCOOLINGTOWERTYPE", []()->BuildingEntity* { return new IfcCoolingTowerType(); } },
{ "IFCCOORDINATEOPERATION", []()->BuildingEntity* { return new IfcCoordinateOperation(); } },
{ "IFCCOORDINATEREFERENCESYSTEM", []()->BuildingEntity* { return new IfcCoordinateReferenceSystem(); } },
{ "IFCCOSTITEM", []()->BuildingEntity* { return new IfcCostItem(); } },
{ "IFCCOSTSCHEDULE", []()->BuildingEntity* { return new IfcCostSchedule(); } },
{ "IFCCOSTVALUE", []()->BuildingEntity* { return new IfcCostValue(); } },
{ "IFCCOVERING", []()->BuildingEntity* { return new IfcCovering(); } },
{ "IFCCOVERINGTYPE", []()->BuildingEntity* { return new IfcCoveringType(); } },
{ "IFCCREWRESOURCE", []()->BuildingEntity* { return new IfcCrewResource(); } },
{ "IFCCREWRESOURCETYPE", []()->BuildingEntity* { return new IfcCrewResourceType(); } },
{ "IFCCSGPRIMITIVE3D", []()->BuildingEntity* { return new IfcCsgPrimitive3D(); } },
{ "IFCCSGSOLID", []()->BuildingEntity* { return new IfcCsgSolid(); } },
{ "IFCCURRENCYRELATIONSHIP", []()->BuildingEntity* { return new IfcCurrencyRelationship(); } },
{ "IFCCURTAINWALL", []()->BuildingEntity* { return new IfcCurtainWall(); } },
{ "IFCCURTAINWALLTYPE", []()->BuildingEntity* { return new IfcCurtainWallType(); } },
{ "IFCCURVE", []()->BuildingEntity* { return new IfcCurve(); } },
{ "IFCCURVEBOUNDEDPLANE", []()->BuildingEntity* { return new IfcCurveBoundedPlane(); } },
{ "IFCCURVEBOUNDEDSURFACE", []()->BuildingEntity* { return new IfcCurveBoundedSurface(); } },
{ "IFCCURVESTYLE", []()->BuildingEntity* { return new IfcCurveStyle(); } },
{ "IFCCURVESTYLEFONT", []()->BuildingEntity* { return new IfcCurveStyleFont(); } },
{ "IFCCURVESTYLEFONTANDSCALING", []()->BuildingEntity* { return new IfcCurveStyleFontAndScaling(); } },
{ "IFCCURVESTYLEFONTPATTERN", []()->BuildingEntity* { return new IfcCurveStyleFontPattern(); } },
{ "IFCCYLINDRICALSURFACE", []()->BuildingEntity* { return new IfcCylindricalSurface(); } },
{ "IFCDAMPER", []()->BuildingEntity* { return new IfcDamper(); } },
{ "IFCDAMPERTYPE", []()->BuildingEntity* { return new IfcDamperType(); } },
{ "IFCDERIVEDPROFILEDEF", []()->BuildingEntity* { return new IfcDerivedProfileDef(); } },
{ "IFCDERIVEDUNIT", []()->BuildingEntity* { return new IfcDerivedUnit(); } },
{ "IFCDERIVEDUNITELEMENT", []()->BuildingEntity* { return new IfcDerivedUnitElement(); } },
{ "IFCDIMENSIONALEXPONENTS", []()->BuildingEntity* { return new IfcDimensionalExponents(); } },
{ "IFCDIRECTION", []()->BuildingEntity* { return new IfcDirection(); } },
{ "IFCDISCRETEACCESSORY", []()->BuildingEntity* { return new IfcDiscreteAccessory(); } },
{ "IFCDISCRETEACCESSORYTYPE", []()->BuildingEntity* { return new IfcDiscreteAccessoryType(); } },
{ "IFCDISTRIBUTIONCHAMBERELEMENT", []()->BuildingEntity* { return new IfcDistributionChamberElement(); } },
{ "IFCDISTRIBUTIONCHAMBERELEMENTTYPE", []()->BuildingEntity* { return new IfcDistributionChamberElementType(); } },
{ "IFCDISTRIBUTIONCIRCUIT", []()->BuildingEntity* { return new IfcDistributionCircuit(); } },
{ "IFCDISTRIBUTIONCONTROLELEMENT", []()->BuildingEntity* { return new IfcDistributionControlElement(); } },
{ "IFCDISTRIBUTIONCONTROLELEMENTTYPE", []()->BuildingEntity* { return new IfcDistributionControlElementType(); } },
{ "IFCDISTRIBUTIONELEMENT", []()->BuildingEntity* { return new IfcDistributionElement(); } },
{ "IFCDISTRIBUTIONELEMENTTYPE", []()->BuildingEntity* { return new IfcDistributionElementType(); } },
{ "IFCDISTRIBUTIONFLOWELEMENT", []()->BuildingEntity* { return new IfcDistributionFlowElement(); } },
{ "IFCDISTRIBUTIONFLOWELEMENTTYPE", []()->BuildingEntity* { return new IfcDistributionFlowElementType(); } },
{ "IFCDISTRIBUTIONPORT", []()->BuildingEntity* { return new IfcDistributionPort(); } },
{ "IFCDISTRIBUTIONSYSTEM", []()->BuildingEntity* { return new IfcDistributionSystem(); } },
{ "IFCDOCUMENTINFORMATION", []()->BuildingEntity* { return new IfcDocumentInformation(); } },
{ "IFCDOCUMENTINFORMATIONRELATIONSHIP", []()->BuildingEntity* { return new IfcDocumentInformationRelationship(); } },
{ "IFCDOCUMENTREFERENCE", []()->BuildingEntity* { return new IfcDocumentReference(); } },
{ "IFCDOOR", []()->BuildingEntity* { return new IfcDoor(); } },
{ "IFCDOORLININGPROPERTIES", []()->BuildingEntity* { return new IfcDoorLiningProperties(); } },
{ "IFCDOORPANELPROPERTIES", []()->BuildingEntity* { return new IfcDoorPanelProperties(); } },
{ "IFCDOORSTANDARDCASE", []()->BuildingEntity* { return new IfcDoorStandardCase(); } },
{ "IFCDOORSTYLE", []()->BuildingEntity* { return new IfcDoorStyle(); } },
{ "IFCDOORTYPE", []()->BuildingEntity* { return new IfcDoorType(); } },
{ "IFCDRAUGHTINGPREDEFINEDCOLOUR", []()->BuildingEntity* { return new IfcDraughtingPreDefinedColour(); } },
{ "IFCDRAUGHTINGPREDEFINEDCURVEFONT", []()->BuildingEntity* { return new IfcDraughtingPreDefinedCurveFont(); } },
{ "IFCDUCTFITTING", []()->BuildingEntity* { return new IfcDuctFitting(); } },
{ "IFCDUCTFITTINGTYPE", []()->BuildingEntity* { return new IfcDuctFittingType(); } },
{ "IFCDUCTSEGMENT", []()->BuildingEntity* { return new IfcDuctSegment(); } },
{ "IFCDUCTSEGMENTTYPE", []()->BuildingEntity* { return new IfcDuctSegmentType(); } },
{ "IFCDUCTSILENCER", []()->BuildingEntity* { return new IfcDuctSilencer(); } },
{ "IFCDUCTSILENCERTYPE", []()->BuildingEntity* { return new IfcDuctSilencerType(); } },
{ "IFCEDGE", []()->BuildingEntity* { return new IfcEdge(); } },
{ "IFCEDGECURVE", []()->BuildingEntity* { return new IfcEdgeCurve(); } },
{ "IFCEDGELOOP", []()->BuildingEntity* { return new IfcEdgeLoop(); } },
{ "IFCELECTRICAPPLIANCE", []()->BuildingEntity* { return new IfcElectricAppliance(); } },
{ "IFCELECTRICAPPLIANCETYPE", []()->BuildingEntity* { return new IfcElectricApplianceType(); } },
{ "IFCELECTRICDISTRIBUTIONBOARD", []()->BuildingEntity* { return new IfcElectricDistributionBoard(); } },
{ "IFCELECTRICDISTRIBUTIONBOARDTYPE", []()->BuildingEntity* { return new IfcElectricDistributionBoardType(); } },
{ "IFCELECTRICFLOWSTORAGEDEVICE", []()->BuildingEntity* { return new IfcElectricFlowStorageDevice(); } },
{ "IFCELECTRICFLOWSTORAGEDEVICETYPE", []()->BuildingEntity* { return new IfcElectricFlowStorageDeviceType(); } },
{ "IFCELECTRICGENERATOR", []()->BuildingEntity* { return new IfcElectricGenerator(); } },
{ "IFCELECTRICGENERATORTYPE", []()->BuildingEntity* { return new IfcElectricGeneratorType(); } },
{ "IFCELECTRICMOTOR", []()->BuildingEntity* { return new IfcElectricMotor(); } },
{ "IFCELECTRICMOTORTYPE", []()->BuildingEntity* { return new IfcElectricMotorType(); } },
{ "IFCELECTRICTIMECONTROL", []()->BuildingEntity* { return new IfcElectricTimeControl(); } },
{ "IFCELECTRICTIMECONTROLTYPE", []()->BuildingEntity* { return new IfcElectricTimeControlType(); } },
{ "IFCELEMENT", []()->BuildingEntity* { return new IfcElement(); } },
{ "IFCELEMENTASSEMBLY", []()->BuildingEntity* { return new IfcElementAssembly(); } },
{ "IFCELEMENTASSEMBLYTYPE", []()->BuildingEntity* { return new IfcElementAssemblyType(); } },
{ "IFCELEMENTCOMPONENT", []()->BuildingEntity* { return new IfcElementComponent(); } },
{ "IFCELEMENTCOMPONENTTYPE", []()->BuildingEntity* { return new IfcElementComponentType(); } },
{ "IFCELEMENTQUANTITY", []()->BuildingEntity* { return new IfcElementQuantity(); } },
{ "IFCELEMENTTYPE", []()->BuildingEntity* { return new IfcElementType(); } },
{ "IFCELEMENTARYSURFACE", []()->BuildingEntity* { return new IfcElementarySurface(); } },
{ "IFCELLIPSE", []()->BuildingEntity* { return new IfcEllipse(); } },
{ "IFCELLIPSEPROFILEDEF", []()->BuildingEntity* { return new IfcEllipseProfileDef(); } },
{ "IFCENERGYCONVERSIONDEVICE", []()->BuildingEntity* { return new IfcEnergyConversionDevice(); } },
{ "IFCENERGYCONVERSIONDEVICETYPE", []()->BuildingEntity* { return new IfcEnergyConversionDeviceType(); } },
{ "IFCENGINE", []()->BuildingEntity* { return new IfcEngine(); } },
{ "IFCENGINETYPE", []()->BuildingEntity* { return new IfcEngineType(); } },
{ "IFCEVAPORATIVECOOLER", []()->BuildingEntity* { return new IfcEvaporativeCooler(); } },
{ "IFCEVAPORATIVECOOLERTYPE", []()->BuildingEntity* { return new IfcEvaporativeCoolerType(); } },
{ "IFCEVAPORATOR", []()->BuildingEntity* { return new IfcEvaporator(); } },
{ "IFCEVAPORATORTYPE", []()->BuildingEntity* { return new IfcEvaporatorType(); } },
{ "IFCEVENT", []()->BuildingEntity* { return new IfcEvent(); } },
{ "IFCEVENTTIME", []()->BuildingEntity* { return new IfcEventTime(); } },
{ "IFCEVENTTYPE", []()->BuildingEntity* { return new IfcEventType(); } },
{ "IFCEXTENDEDPROPERTIES", []()->BuildingEntity* { return new IfcExtendedProperties(); } },
{ "IFCEXTERNALINFORMATION", []()->BuildingEntity* { return new IfcExternalInformation(); } },
{ "IFCEXTERNALREFERENCE", []()->BuildingEntity* { return new IfcExternalReference(); } },
{ "IFCEXTERNALREFERENCERELATIONSHIP", []()->BuildingEntity* { return new IfcExternalReferenceRelationship(); } },
{ "IFCEXTERNALSPATIALELEMENT", []()->BuildingEntity* { return new IfcExternalSpatialElement(); } },
{ "IFCEXTERNALSPATIALSTRUCTUREELEMENT", []()->BuildingEntity* { return new IfcExternalSpatialStructureElement(); } },
{ "IFCEXTERNALLYDEFINEDHATCHSTYLE", []()->BuildingEntity* { return new IfcExternallyDefinedHatchStyle(); } },
{ "IFCEXTERNALLYDEFINEDSURFACESTYLE", []()->BuildingEntity* { return new IfcExternallyDefinedSurfaceStyle(); } },
{ "IFCEXTERNALLYDEFINEDTEXTFONT", []()->BuildingEntity* { return new IfcExternallyDefinedTextFont(); } },
{ "IFCEXTRUDEDAREASOLID", []()->BuildingEntity* { return new IfcExtrudedAreaSolid(); } },
{ "IFCEXTRUDEDAREASOLIDTAPERED", []()->BuildingEntity* { return new IfcExtrudedAreaSolidTapered(); } },
{ "IFCFACE", []()->BuildingEntity* { return new IfcFace(); } },
{ "IFCFACEBASEDSURFACEMODEL", []()->BuildingEntity* { return new IfcFaceBasedSurfaceModel(); } },
{ "IFCFACEBOUND", []()->BuildingEntity* { return new IfcFaceBound(); } },
{ "IFCFACEOUTERBOUND", []()->BuildingEntity* { return new IfcFaceOuterBound(); } },
{ "IFCFACESURFACE", []()->BuildingEntity* { return new IfcFaceSurface(); } },
{ "IFCFACETEDBREP", []()->BuildingEntity* { return new IfcFacetedBrep(); } },
{ "IFCFACETEDBREPWITHVOIDS", []()->BuildingEntity* { return new IfcFacetedBrepWithVoids(); } },
{ "IFCFAILURECONNECTIONCONDITION", []()->BuildingEntity* { return new IfcFailureConnectionCondition(); } },
{ "IFCFAN", []()->BuildingEntity* { return new IfcFan(); } },
{ "IFCFANTYPE", []()->BuildingEntity* { return new IfcFanType(); } },
{ "IFCFASTENER", []()->BuildingEntity* { return new IfcFastener(); } },
{ "IFCFASTENERTYPE", []()->BuildingEntity* { return new IfcFastenerType(); } },
{ "IFCFEATUREELEMENT", []()->BuildingEntity* { return new IfcFeatureElement(); } },
{ "IFCFEATUREELEMENTADDITION", []()->BuildingEntity* { return new IfcFeatureElementAddition(); } },
{ "IFCFEATUREELEMENTSUBTRACTION", []()->BuildingEntity* { return new IfcFeatureElementSubtraction(); } },
{ "IFCFILLAREASTYLE", []()->BuildingEntity* { return new IfcFillAreaStyle(); } },
{ "IFCFILLAREASTYLEHATCHING", []()->BuildingEntity* { return new IfcFillAreaStyleHatching(); } },
{ "IFCFILLAREASTYLETILES", []()->BuildingEntity* { return new IfcFillAreaStyleTiles(); } },
{ "IFCFILTER", []()->BuildingEntity* { return new IfcFilter(); } },
{ "IFCFILTERTYPE", []()->BuildingEntity* { return new IfcFilterType(); } },
{ "IFCFIRESUPPRESSIONTERMINAL", []()->BuildingEntity* { return new IfcFireSuppressionTerminal(); } },
{ "IFCFIRESUPPRESSIONTERMINALTYPE", []()->BuildingEntity* { return new IfcFireSuppressionTerminalType(); } },
{ "IFCFIXEDREFERENCESWEPTAREASOLID", []()->BuildingEntity* { return new IfcFixedReferenceSweptAreaSolid(); } },
{ "IFCFLOWCONTROLLER", []()->BuildingEntity* { return new IfcFlowController(); } },
{ "IFCFLOWCONTROLLERTYPE", []()->BuildingEntity* { return new IfcFlowControllerType(); } },
{ "IFCFLOWFITTING", []()->BuildingEntity* { return new IfcFlowFitting(); } },
{ "IFCFLOWFITTINGTYPE", []()->BuildingEntity* { return new IfcFlowFittingType(); } },
{ "IFCFLOWINSTRUMENT", []()->BuildingEntity* { return new IfcFlowInstrument(); } },
{ "IFCFLOWINSTRUMENTTYPE", []()->BuildingEntity* { return new IfcFlowInstrumentType(); } },
{ "IFCFLOWMETER", []()->BuildingEntity* { return new IfcFlowMeter(); } },
{ "IFCFLOWMETERTYPE", []()->BuildingEntity* { return new IfcFlowMeterType(); } },
{ "IFCFLOWMOVINGDEVICE", []()->BuildingEntity* { return new IfcFlowMovingDevice(); } },
{ "IFCFLOWMOVINGDEVICETYPE", []()->BuildingEntity* { return new IfcFlowMovingDeviceType(); } },
{ "IFCFLOWSEGMENT", []()->BuildingEntity* { return new IfcFlowSegment(); } },
{ "IFCFLOWSEGMENTTYPE", []()->BuildingEntity* { return new IfcFlowSegmentType(); } },
{ "IFCFLOWSTORAGEDEVICE", []()->BuildingEntity* { return new IfcFlowStorageDevice(); } },
{ "IFCFLOWSTORAGEDEVICETYPE", []()->BuildingEntity* { return new IfcFlowStorageDeviceType(); } },
{ "IFCFLOWTERMINAL", []()->BuildingEntity* { return new IfcFlowTerminal(); } },
{ "IFCFLOWTERMINALTYPE", []()->BuildingEntity* { return new IfcFlowTerminalType(); } },
{ "IFCFLOWTREATMENTDEVICE", []()->BuildingEntity* { return new IfcFlowTreatmentDevice(); } },
{ "IFCFLOWTREATMENTDEVICETYPE", []()->BuildingEntity* { return new IfcFlowTreatmentDeviceType(); } },
{ "IFCFOOTING", []()->BuildingEntity* { return new IfcFooting(); } },
{ "IFCFOOTINGTYPE", []()->BuildingEntity* { return new IfcFootingType(); } },
{ "IFCFURNISHINGELEMENT", []()->BuildingEntity* { return new IfcFurnishingElement(); } },
{ "IFCFURNISHINGELEMENTTYPE", []()->BuildingEntity* { return new IfcFurnishingElementType(); } },
{ "IFCFURNITURE", []()->BuildingEntity* { return new IfcFurniture(); } },
{ "IFCFURNITURETYPE", []()->BuildingEntity* { return new IfcFurnitureType(); } },
{ "IFCGEOGRAPHICELEMENT", []()->BuildingEntity* { return new IfcGeographicElement(); } },
{ "IFCGEOGRAPHICELEMENTTYPE", []()->BuildingEntity* { return new IfcGeographicElementType(); } },
{ "IFCGEOMETRICCURVESET", []()->BuildingEntity* { return new IfcGeometricCurveSet(); } },
{ "IFCGEOMETRICREPRESENTATIONCONTEXT", []()->BuildingEntity* { return new IfcGeometricRepresentationContext(); } },
{ "IFCGEOMETRICREPRESENTATIONITEM", []()->BuildingEntity* { return new IfcGeometricRepresentationItem(); } },
{ "IFCGEOMETRICREPRESENTATIONSUBCONTEXT", []()->BuildingEntity* { return new IfcGeometricRepresentationSubContext(); } },
{ "IFCGEOMETRICSET", []()->BuildingEntity* { return new IfcGeometricSet(); } },
{ "IFCGRID", []()->BuildingEntity* { return new IfcGrid(); } },
{ "IFCGRIDAXIS", []()->BuildingEntity* { return new IfcGridAxis(); } },
{ "IFCGRIDPLACEMENT", []()->BuildingEntity* { return new IfcGridPlacement(); } },
{ "IFCGROUP", []()->BuildingEntity* { return new IfcGroup(); } },
{ "IFCHALFSPACESOLID", []()->BuildingEntity* { return new IfcHalfSpaceSolid(); } },
{ "IFCHEATEXCHANGER", []()->BuildingEntity* { return new IfcHeatExchanger(); } },
{ "IFCHEATEXCHANGERTYPE", []()->BuildingEntity* { return new IfcHeatExchangerType(); } },
{ "IFCHUMIDIFIER", []()->BuildingEntity* { return new IfcHumidifier(); } },
{ "IFCHUMIDIFIERTYPE", []()->BuildingEntity* { return new IfcHumidifierType(); } },
{ "IFCISHAPEPROFILEDEF", []()->BuildingEntity* { return new IfcIShapeProfileDef(); } },
{ "IFCIMAGETEXTURE", []()->BuildingEntity* { return new IfcImageTexture(); } },
{ "IFCINDEXEDCOLOURMAP", []()->BuildingEntity* { return new IfcIndexedColourMap(); } },
{ "IFCINDEXEDPOLYCURVE", []()->BuildingEntity* { return new IfcIndexedPolyCurve(); } },
{ "IFCINDEXEDPOLYGONALFACE", []()->BuildingEntity* { return new IfcIndexedPolygonalFace(); } },
{ "IFCINDEXEDPOLYGONALFACEWITHVOIDS", []()->BuildingEntity* { return new IfcIndexedPolygonalFaceWithVoids(); } },
{ "IFCINDEXEDTEXTUREMAP", []()->BuildingEntity* { return new IfcIndexedTextureMap(); } },
{ "IFCINDEXEDTRIANGLETEXTUREMAP", []()->BuildingEntity* { return new IfcIndexedTriangleTextureMap(); } },
{ "IFCINTERCEPTOR", []()->BuildingEntity* { return new IfcInterceptor(); } },
{ "IFCINTERCEPTORTYPE", []()->BuildingEntity* { return new IfcInterceptorType(); } },
{ "IFCINTERSECTIONCURVE", []()->BuildingEntity* { return new IfcIntersectionCurve(); } },
{ "IFCINVENTORY", []()->BuildingEntity* { return new IfcInventory(); } },
{ "IFCIRREGULARTIMESERIES", []()->BuildingEntity* { return new IfcIrregularTimeSeries(); } },
{ "IFCIRREGULARTIMESERIESVALUE", []()->BuildingEntity* { return new IfcIrregularTimeSeriesValue(); } },
{ "IFCJUNCTIONBOX", []()->BuildingEntity* { return new IfcJunctionBox(); } },
{ "IFCJUNCTIONBOXTYPE", []()->BuildingEntity* { return new IfcJunctionBoxType(); } },
{ "IFCLSHAPEPROFILEDEF", []()->BuildingEntity* { return new IfcLShapeProfileDef(); } },
{ "IFCLABORRESOURCE", []()->BuildingEntity* { return new IfcLaborResource(); } },
{ "IFCLABORRESOURCETYPE", []()->BuildingEntity* { return new IfcLaborResourceType(); } },
{ "IFCLAGTIME", []()->BuildingEntity* { return new IfcLagTime(); } },
{ "IFCLAMP", []()->BuildingEntity* { return new IfcLamp(); } },
{ "IFCLAMPTYPE", []()->BuildingEntity* { return new IfcLampType(); } },
{ "IFCLIBRARYINFORMATION", []()->BuildingEntity* { return new IfcLibraryInformation(); } },
{ "IFCLIBRARYREFERENCE", []()->BuildingEntity* { return new IfcLibraryReference(); } },
{ "IFCLIGHTDISTRIBUTIONDATA", []()->BuildingEntity* { return new IfcLightDistributionData(); } },
{ "IFCLIGHTFIXTURE", []()->BuildingEntity* { return new IfcLightFixture(); } },
{ "IFCLIGHTFIXTURETYPE", []()->BuildingEntity* { return new IfcLightFixtureType(); } },
{ "IFCLIGHTINTENSITYDISTRIBUTION", []()->BuildingEntity* { return new IfcLightIntensityDistribution(); } },
{ "IFCLIGHTSOURCE", []()->BuildingEntity* { return new IfcLightSource(); } },
{ "IFCLIGHTSOURCEAMBIENT", []()->BuildingEntity* { return new IfcLightSourceAmbient(); } },
{ "IFCLIGHTSOURCEDIRECTIONAL", []()->BuildingEntity* { return new IfcLightSourceDirectional(); } },
{ "IFCLIGHTSOURCEGONIOMETRIC", []()->BuildingEntity* { return new IfcLightSourceGoniometric(); } },
{ "IFCLIGHTSOURCEPOSITIONAL", []()->BuildingEntity* { return new IfcLightSourcePositional(); } },
{ "IFCLIGHTSOURCESPOT", []()->BuildingEntity* { return new IfcLightSourceSpot(); } },
{ "IFCLINE", []()->BuildingEntity* { return new IfcLine(); } },
{ "IFCLOCALPLACEMENT", []()->BuildingEntity* { return new IfcLocalPlacement(); } },
{ "IFCLOOP", []()->BuildingEntity* { return new IfcLoop(); } },
{ "IFCMANIFOLDSOLIDBREP", []()->BuildingEntity* { return new IfcManifoldSolidBrep(); } },
{ "IFCMAPCONVERSION", []()->BuildingEntity* { return new IfcMapConversion(); } },
{ "IFCMAPPEDITEM", []()->BuildingEntity* { return new IfcMappedItem(); } },
{ "IFCMATERIAL", []()->BuildingEntity* { return new IfcMaterial(); } },
{ "IFCMATERIALCLASSIFICATIONRELATIONSHIP", []()->BuildingEntity* { return new IfcMaterialClassificationRelationship(); } },
{ "IFCMATERIALCONSTITUENT", []()->BuildingEntity* { return new IfcMaterialConstituent(); } },
{ "IFCMATERIALCONSTITUENTSET", []()->BuildingEntity* { return new IfcMaterialConstituentSet(); } },
{ "IFCMATERIALDEFINITION", []()->BuildingEntity* { return new IfcMaterialDefinition(); } },
{ "IFCMATERIALDEFINITIONREPRESENTATION", []()->BuildingEntity* { return new IfcMaterialDefinitionRepresentation(); } },
{ "IFCMATERIALLAYER", []()->BuildingEntity* { return new IfcMaterialLayer(); } },
{ "IFCMATERIALLAYERSET", []()->BuildingEntity* { return new IfcMaterialLayerSet(); } },
{ "IFCMATERIALLAYERSETUSAGE", []()->BuildingEntity* { return new IfcMaterialLayerSetUsage(); } },
{ "IFCMATERIALLAYERWITHOFFSETS", []()->BuildingEntity* { return new IfcMaterialLayerWithOffsets(); } },
{ "IFCMATERIALLIST", []()->BuildingEntity* { return new IfcMaterialList(); } },
{ "IFCMATERIALPROFILE", []()->BuildingEntity* { return new IfcMaterialProfile(); } },
{ "IFCMATERIALPROFILESET", []()->BuildingEntity* { return new IfcMaterialProfileSet(); } },
{ "IFCMATERIALPROFILESETUSAGE", []()->BuildingEntity* { return new IfcMaterialProfileSetUsage(); } },
{ "IFCMATERIALPROFILESETUSAGETAPERING", []()->BuildingEntity* { return new IfcMaterialProfileSetUsageTapering(); } },
{ "IFCMATERIALPROFILEWITHOFFSETS", []()->BuildingEntity* { return new IfcMaterialProfileWithOffsets(); } },
{ "IFCMATERIALPROPERTIES", []()->BuildingEntity* { return new IfcMaterialProperties(); } },
{ "IFCMATERIALRELATIONSHIP", []()->BuildingEntity* { return new IfcMaterialRelationship(); } },
{ "IFCMATERIALUSAGEDEFINITION", []()->BuildingEntity* { return new IfcMaterialUsageDefinition(); } },
{ "IFCMEASUREWITHUNIT", []()->BuildingEntity* { return new IfcMeasureWithUnit(); } },
{ "IFCMECHANICALFASTENER", []()->BuildingEntity* { return new IfcMechanicalFastener(); } },
{ "IFCMECHANICALFASTENERTYPE", []()->BuildingEntity* { return new IfcMechanicalFastenerType(); } },
{ "IFCMEDICALDEVICE", []()->BuildingEntity* { return new IfcMedicalDevice(); } },
{ "IFCMEDICALDEVICETYPE", []()->BuildingEntity* { return new IfcMedicalDeviceType(); } },
{ "IFCMEMBER", []()->BuildingEntity* { return new IfcMember(); } },
{ "IFCMEMBERSTANDARDCASE", []()->BuildingEntity* { return new IfcMemberStandardCase(); } },
{ "IFCMEMBERTYPE", []()->BuildingEntity* { return new IfcMemberType(); } },
{ "IFCMETRIC", []()->BuildingEntity* { return new IfcMetric(); } },
{ "IFCMIRROREDPROFILEDEF", []()->BuildingEntity* { return new IfcMirroredProfileDef(); } },
{ "IFCMONETARYUNIT", []()->BuildingEntity* { return new IfcMonetaryUnit(); } },
{ "IFCMOTORCONNECTION", []()->BuildingEntity* { return new IfcMotorConnection(); } },
{ "IFCMOTORCONNECTIONTYPE", []()->BuildingEntity* { return new IfcMotorConnectionType(); } },
{ "IFCNAMEDUNIT", []()->BuildingEntity* { return new IfcNamedUnit(); } },
{ "IFCOBJECT", []()->BuildingEntity* { return new IfcObject(); } },
{ "IFCOBJECTDEFINITION", []()->BuildingEntity* { return new IfcObjectDefinition(); } },
{ "IFCOBJECTPLACEMENT", []()->BuildingEntity* { return new IfcObjectPlacement(); } },
{ "IFCOBJECTIVE", []()->BuildingEntity* { return new IfcObjective(); } },
{ "IFCOCCUPANT", []()->BuildingEntity* { return new IfcOccupant(); } },
{ "IFCOFFSETCURVE2D", []()->BuildingEntity* { return new IfcOffsetCurve2D(); } },
{ "IFCOFFSETCURVE3D", []()->BuildingEntity* { return new IfcOffsetCurve3D(); } },
{ "IFCOPENSHELL", []()->BuildingEntity* { return new IfcOpenShell(); } },
{ "IFCOPENINGELEMENT", []()->BuildingEntity* { return new IfcOpeningElement(); } },
{ "IFCOPENINGSTANDARDCASE", []()->BuildingEntity* { return new IfcOpeningStandardCase(); } },
{ "IFCORGANIZATION", []()->BuildingEntity* { return new IfcOrganization(); } },
{ "IFCORGANIZATIONRELATIONSHIP", []()->BuildingEntity* { return new IfcOrganizationRelationship(); } },
{ "IFCORIENTEDEDGE", []()->BuildingEntity* { return new IfcOrientedEdge(); } },
{ "IFCOUTERBOUNDARYCURVE", []()->BuildingEntity* { return new IfcOuterBoundaryCurve(); } },
{ "IFCOUTLET", []()->BuildingEntity* { return new IfcOutlet(); } },
{ "IFCOUTLETTYPE", []()->BuildingEntity* { return new IfcOutletType(); } },
{ "IFCOWNERHISTORY", []()->BuildingEntity* { return new IfcOwnerHistory(); } },
{ "IFCPARAMETERIZEDPROFILEDEF", []()->BuildingEntity* { return new IfcParameterizedProfileDef(); } },
{ "IFCPATH", []()->BuildingEntity* { return new IfcPath(); } },
{ "IFCPCURVE", []()->BuildingEntity* { return new IfcPcurve(); } },
{ "IFCPERFORMANCEHISTORY", []()->BuildingEntity* { return new IfcPerformanceHistory(); } },
{ "IFCPERMEABLECOVERINGPROPERTIES", []()->BuildingEntity* { return new IfcPermeableCoveringProperties(); } },
{ "IFCPERMIT", []()->BuildingEntity* { return new IfcPermit(); } },
{ "IFCPERSON", []()->BuildingEntity* { return new IfcPerson(); } },
{ "IFCPERSONANDORGANIZATION", []()->BuildingEntity* { return new IfcPersonAndOrganization(); } },
{ "IFCPHYSICALCOMPLEXQUANTITY", []()->BuildingEntity* { return new IfcPhysicalComplexQuantity(); } },
{ "IFCPHYSICALQUANTITY", []()->BuildingEntity* { return new IfcPhysicalQuantity(); } },
{ "IFCPHYSICALSIMPLEQUANTITY", []()->BuildingEntity* { return new IfcPhysicalSimpleQuantity(); } },
{ "IFCPILE", []()->BuildingEntity* { return new IfcPile(); } },
{ "IFCPILETYPE", []()->BuildingEntity* { return new IfcPileType(); } },
{ "IFCPIPEFITTING", []()->BuildingEntity* { return new IfcPipeFitting(); } },
{ "IFCPIPEFITTINGTYPE", []()->BuildingEntity* { return new IfcPipeFittingType(); } },
{ "IFCPIPESEGMENT", []()->BuildingEntity* { return new IfcPipeSegment(); } },
{ "IFCPIPESEGMENTTYPE", []()->BuildingEntity* { return new IfcPipeSegmentType(); } },
{ "IFCPIXELTEXTURE", []()->BuildingEntity* { return new IfcPixelTexture(); } },
{ "IFCPLACEMENT", []()->BuildingEntity* { return new IfcPlacement(); } },
{ "IFCPLANARBOX", []()->BuildingEntity* { return new IfcPlanarBox(); } },
{ "IFCPLANAREXTENT", []()->BuildingEntity* { return new IfcPlanarExtent(); } },
{ "IFCPLANE", []()->BuildingEntity* { return new IfcPlane(); } },
{ "IFCPLATE", []()->BuildingEntity* { return new IfcPlate(); } },
{ "IFCPLATESTANDARDCASE", []()->BuildingEntity* { return new IfcPlateStandardCase(); } },
{ "IFCPLATETYPE", []()->BuildingEntity* { return new IfcPlateType(); } },
{ "IFCPOINT", []()->BuildingEntity* { return new IfcPoint(); } },
{ "IFCPOINTONCURVE", []()->BuildingEntity* { return new IfcPointOnCurve(); } },
{ "IFCPOINTONSURFACE", []()->BuildingEntity* { return new IfcPointOnSurface(); } },
{ "IFCPOLYLOOP", []()->BuildingEntity* { return new IfcPolyLoop(); } },
{ "IFCPOLYGONALBOUNDEDHALFSPACE", []()->BuildingEntity* { return new IfcPolygonalBoundedHalfSpace(); } },
{ "IFCPOLYGONALFACESET", []()->BuildingEntity* { return new IfcPolygonalFaceSet(); } },
{ "IFCPOLYLINE", []()->BuildingEntity* { return new IfcPolyline(); } },
{ "IFCPORT", []()->BuildingEntity* { return new IfcPort(); } },
{ "IFCPOSTALADDRESS", []()->BuildingEntity* { return new IfcPostalAddress(); } },
{ "IFCPREDEFINEDCOLOUR", []()->BuildingEntity* { return new IfcPreDefinedColour(); } },
{ "IFCPREDEFINEDCURVEFONT", []()->BuildingEntity* { return new IfcPreDefinedCurveFont(); } },
{ "IFCPREDEFINEDITEM", []()->BuildingEntity* { return new IfcPreDefinedItem(); } },
{ "IFCPREDEFINEDPROPERTIES", []()->BuildingEntity* { return new IfcPreDefinedProperties(); } },
{ "IFCPREDEFINEDPROPERTYSET", []()->BuildingEntity* { return new IfcPreDefinedPropertySet(); } },
{ "IFCPREDEFINEDTEXTFONT", []()->BuildingEntity* { return new IfcPreDefinedTextFont(); } },
{ "IFCPRESENTATIONITEM", []()->BuildingEntity* { return new IfcPresentationItem(); } },
{ "IFCPRESENTATIONLAYERASSIGNMENT", []()->BuildingEntity* { return new IfcPresentationLayerAssignment(); } },
{ "IFCPRESENTATIONLAYERWITHSTYLE", []()->BuildingEntity* { return new IfcPresentationLayerWithStyle(); } },
{ "IFCPRESENTATIONSTYLE", []()->BuildingEntity* { return new IfcPresentationStyle(); } },
{ "IFCPRESENTATIONSTYLEASSIGNMENT", []()->BuildingEntity* { return new IfcPresentationStyleAssignment(); } },
{ "IFCPROCEDURE", []()->BuildingEntity* { return new IfcProcedure(); } },
{ "IFCPROCEDURETYPE", []()->BuildingEntity* { return new IfcProcedureType(); } },
{ "IFCPROCESS", []()->BuildingEntity* { return new IfcProcess(); } },
{ "IFCPRODUCT", []()->BuildingEntity* { return new IfcProduct(); } },
{ "IFCPRODUCTDEFINITIONSHAPE", []()->BuildingEntity* { return new IfcProductDefinitionShape(); } },
{ "IFCPRODUCTREPRESENTATION", []()->BuildingEntity* { return new IfcProductRepresentation(); } },
{ "IFCPROFILEDEF", []()->BuildingEntity* { return new IfcProfileDef(); } },
{ "IFCPROFILEPROPERTIES", []()->BuildingEntity* { return new IfcProfileProperties(); } },
{ "IFCPROJECT", []()->BuildingEntity* { return new IfcProject(); } },
{ "IFCPROJECTLIBRARY", []()->BuildingEntity* { return new IfcProjectLibrary(); } },
{ "IFCPROJECTORDER", []()->BuildingEntity* { return new IfcProjectOrder(); } },
{ "IFCPROJECTEDCRS", []()->BuildingEntity* { return new IfcProjectedCRS(); } },
{ "IFCPROJECTIONELEMENT", []()->BuildingEntity* { return new IfcProjectionElement(); } },
{ "IFCPROPERTY", []()->BuildingEntity* { return new IfcProperty(); } },
{ "IFCPROPERTYABSTRACTION", []()->BuildingEntity* { return new IfcPropertyAbstraction(); } },
{ "IFCPROPERTYBOUNDEDVALUE", []()->BuildingEntity* { return new IfcPropertyBoundedValue(); } },
{ "IFCPROPERTYDEFINITION", []()->BuildingEntity* { return new IfcPropertyDefinition(); } },
{ "IFCPROPERTYDEPENDENCYRELATIONSHIP", []()->BuildingEntity* { return new IfcPropertyDependencyRelationship(); } },
{ "IFCPROPERTYENUMERATEDVALUE", []()->BuildingEntity* { return new IfcPropertyEnumeratedValue(); } },
{ "IFCPROPERTYENUMERATION", []()->BuildingEntity* { return new IfcPropertyEnumeration(); } },
{ "IFCPROPERTYLISTVALUE", []()->BuildingEntity* { return new IfcPropertyListValue(); } },
{ "IFCPROPERTYREFERENCEVALUE", []()->BuildingEntity* { return new IfcPropertyReferenceValue(); } },
{ "IFCPROPERTYSET", []()->BuildingEntity* { return new IfcPropertySet(); } },
{ "IFCPROPERTYSETDEFINITION", []()->BuildingEntity* { return new IfcPropertySetDefinition(); } },
{ "IFCPROPERTYSETTEMPLATE", []()->BuildingEntity* { return new IfcPropertySetTemplate(); } },
{ "IFCPROPERTYSINGLEVALUE", []()->BuildingEntity* { return new IfcPropertySingleValue(); } },
{ "IFCPROPERTYTABLEVALUE", []()->BuildingEntity* { return new IfcPropertyTableValue(); } },
{ "IFCPROPERTYTEMPLATE", []()->BuildingEntity* { return new IfcPropertyTemplate(); } },
{ "IFCPROPERTYTEMPLATEDEFINITION", []()->BuildingEntity* { return new IfcPropertyTemplateDefinition(); } },
{ "IFCPROTECTIVEDEVICE", []()->BuildingEntity* { return new IfcProtectiveDevice(); } },
{ "IFCPROTECTIVEDEVICETRIPPINGUNIT", []()->BuildingEntity* { return new IfcProtectiveDeviceTrippingUnit(); } },
{ "IFCPROTECTIVEDEVICETRIPPINGUNITTYPE", []()->BuildingEntity* { return new IfcProtectiveDeviceTrippingUnitType(); } },
{ "IFCPROTECTIVEDEVICETYPE", []()->BuildingEntity* { return new IfcProtectiveDeviceType(); } },
{ "IFCPROXY", []()->BuildingEntity* { return new IfcProxy(); } },
{ "IFCPUMP", []()->BuildingEntity* { return new IfcPump(); } },
{ "IFCPUMPTYPE", []()->BuildingEntity* { return new IfcPumpType(); } },
{ "IFCQUANTITYAREA", []()->BuildingEntity* { return new IfcQuantityArea(); } },
{ "IFCQUANTITYCOUNT", []()->BuildingEntity* { return new IfcQuantityCount(); } },
{ "IFCQUANTITYLENGTH", []()->BuildingEntity* { return new IfcQuantityLength(); } },
{ "IFCQUANTITYSET", []()->BuildingEntity* { return new IfcQuantitySet(); } },
{ "IFCQUANTITYTIME", []()->BuildingEntity* { return new IfcQuantityTime(); } },
{ "IFCQUANTITYVOLUME", []()->BuildingEntity* { return new IfcQuantityVolume(); } },
{ "IFCQUANTITYWEIGHT", []()->BuildingEntity* { return new IfcQuantityWeight(); } },
{ "IFCRAILING", []()->BuildingEntity* { return new IfcRailing(); } },
{ "IFCRAILINGTYPE", []()->BuildingEntity* { return new IfcRailingType(); } },
{ "IFCRAMP", []()->BuildingEntity* { return new IfcRamp(); } },
{ "IFCRAMPFLIGHT", []()->BuildingEntity* { return new IfcRampFlight(); } },
{ "IFCRAMPFLIGHTTYPE", []()->BuildingEntity* { return new IfcRampFlightType(); } },
{ "IFCRAMPTYPE", []()->BuildingEntity* { return new IfcRampType(); } },
{ "IFCRATIONALBSPLINECURVEWITHKNOTS", []()->BuildingEntity* { return new IfcRationalBSplineCurveWithKnots(); } },
{ "IFCRATIONALBSPLINESURFACEWITHKNOTS", []()->BuildingEntity* { return new IfcRationalBSplineSurfaceWithKnots(); } },
{ "IFCRECTANGLEHOLLOWPROFILEDEF", []()->BuildingEntity* { return new IfcRectangleHollowProfileDef(); } },
{ "IFCRECTANGLEPROFILEDEF", []()->BuildingEntity* { return new IfcRectangleProfileDef(); } },
{ "IFCRECTANGULARPYRAMID", []()->BuildingEntity* { return new IfcRectangularPyramid(); } },
{ "IFCRECTANGULARTRIMMEDSURFACE", []()->BuildingEntity* { return new IfcRectangularTrimmedSurface(); } },
{ "IFCRECURRENCEPATTERN", []()->BuildingEntity* { return new IfcRecurrencePattern(); } },
{ "IFCREFERENCE", []()->BuildingEntity* { return new IfcReference(); } },
{ "IFCREGULARTIMESERIES", []()->BuildingEntity* { return new IfcRegularTimeSeries(); } },
{ "IFCREINFORCEMENTBARPROPERTIES", []()->BuildingEntity* { return new IfcReinforcementBarProperties(); } },
{ "IFCREINFORCEMENTDEFINITIONPROPERTIES", []()->BuildingEntity* { return new IfcReinforcementDefinitionProperties(); } },
{ "IFCREINFORCINGBAR", []()->BuildingEntity* { return new IfcReinforcingBar(); } },
{ "IFCREINFORCINGBARTYPE", []()->BuildingEntity* { return new IfcReinforcingBarType(); } },
{ "IFCREINFORCINGELEMENT", []()->BuildingEntity* { return new IfcReinforcingElement(); } },
{ "IFCREINFORCINGELEMENTTYPE", []()->BuildingEntity* { return new IfcReinforcingElementType(); } },
{ "IFCREINFORCINGMESH", []()->BuildingEntity* { return new IfcReinforcingMesh(); } },
{ "IFCREINFORCINGMESHTYPE", []()->BuildingEntity* { return new IfcReinforcingMeshType(); } },
{ "IFCRELAGGREGATES", []()->BuildingEntity* { return new IfcRelAggregates(); } },
{ "IFCRELASSIGNS", []()->BuildingEntity* { return new IfcRelAssigns(); } },
{ "IFCRELASSIGNSTOACTOR", []()->BuildingEntity* { return new IfcRelAssignsToActor(); } },
{ "IFCRELASSIGNSTOCONTROL", []()->BuildingEntity* { return new IfcRelAssignsToControl(); } },
{ "IFCRELASSIGNSTOGROUP", []()->BuildingEntity* { return new IfcRelAssignsToGroup(); } },
{ "IFCRELASSIGNSTOGROUPBYFACTOR", []()->BuildingEntity* { return new IfcRelAssignsToGroupByFactor(); } },
{ "IFCRELASSIGNSTOPROCESS", []()->BuildingEntity* { return new IfcRelAssignsToProcess(); } },
{ "IFCRELASSIGNSTOPRODUCT", []()->BuildingEntity* { return new IfcRelAssignsToProduct(); } },
{ "IFCRELASSIGNSTORESOURCE", []()->BuildingEntity* { return new IfcRelAssignsToResource(); } },
{ "IFCRELASSOCIATES", []()->BuildingEntity* { return new IfcRelAssociates(); } },
{ "IFCRELASSOCIATESAPPROVAL", []()->BuildingEntity* { return new IfcRelAssociatesApproval(); } },
{ "IFCRELASSOCIATESCLASSIFICATION", []()->BuildingEntity* { return new IfcRelAssociatesClassification(); } },
{ "IFCRELASSOCIATESCONSTRAINT", []()->BuildingEntity* { return new IfcRelAssociatesConstraint(); } },
{ "IFCRELASSOCIATESDOCUMENT", []()->BuildingEntity* { return new IfcRelAssociatesDocument(); } },
{ "IFCRELASSOCIATESLIBRARY", []()->BuildingEntity* { return new IfcRelAssociatesLibrary(); } },
{ "IFCRELASSOCIATESMATERIAL", []()->BuildingEntity* { return new IfcRelAssociatesMaterial(); } },
{ "IFCRELCONNECTS", []()->BuildingEntity* { return new IfcRelConnects(); } },
{ "IFCRELCONNECTSELEMENTS", []()->BuildingEntity* { return new IfcRelConnectsElements(); } },
{ "IFCRELCONNECTSPATHELEMENTS", []()->BuildingEntity* { return new IfcRelConnectsPathElements(); } },
{ "IFCRELCONNECTSPORTTOELEMENT", []()->BuildingEntity* { return new IfcRelConnectsPortToElement(); } },
{ "IFCRELCONNECTSPORTS", []()->BuildingEntity* { return new IfcRelConnectsPorts(); } },
{ "IFCRELCONNECTSSTRUCTURALACTIVITY", []()->BuildingEntity* { return new IfcRelConnectsStructuralActivity(); } },
{ "IFCRELCONNECTSSTRUCTURALMEMBER", []()->BuildingEntity* { return new IfcRelConnectsStructuralMember(); } },
{ "IFCRELCONNECTSWITHECCENTRICITY", []()->BuildingEntity* { return new IfcRelConnectsWithEccentricity(); } },
{ "IFCRELCONNECTSWITHREALIZINGELEMENTS", []()->BuildingEntity* { return new IfcRelConnectsWithRealizingElements(); } },
{ "IFCRELCONTAINEDINSPATIALSTRUCTURE", []()->BuildingEntity* { return new IfcRelContainedInSpatialStructure(); } },
{ "IFCRELCOVERSBLDGELEMENTS", []()->BuildingEntity* { return new IfcRelCoversBldgElements(); } },
{ "IFCRELCOVERSSPACES", []()->BuildingEntity* { return new IfcRelCoversSpaces(); } },
{ "IFCRELDECLARES", []()->BuildingEntity* { return new IfcRelDeclares(); } },
{ "IFCRELDECOMPOSES", []()->BuildingEntity* { return new IfcRelDecomposes(); } },
{ "IFCRELDEFINES", []()->BuildingEntity* { return new IfcRelDefines(); } },
{ "IFCRELDEFINESBYOBJECT", []()->BuildingEntity* { return new IfcRelDefinesByObject(); } },
{ "IFCRELDEFINESBYPROPERTIES", []()->BuildingEntity* { return new IfcRelDefinesByProperties(); } },
{ "IFCRELDEFINESBYTEMPLATE", []()->BuildingEntity* { return new IfcRelDefinesByTemplate(); } },
{ "IFCRELDEFINESBYTYPE", []()->BuildingEntity* { return new IfcRelDefinesByType(); } },
{ "IFCRELFILLSELEMENT", []()->BuildingEntity* { return new IfcRelFillsElement(); } },
{ "IFCRELFLOWCONTROLELEMENTS", []()->BuildingEntity* { return new IfcRelFlowControlElements(); } },
{ "IFCRELINTERFERESELEMENTS", []()->BuildingEntity* { return new IfcRelInterferesElements(); } },
{ "IFCRELNESTS", []()->BuildingEntity* { return new IfcRelNests(); } },
{ "IFCRELPROJECTSELEMENT", []()->BuildingEntity* { return new IfcRelProjectsElement(); } },
{ "IFCRELREFERENCEDINSPATIALSTRUCTURE", []()->BuildingEntity* { return new IfcRelReferencedInSpatialStructure(); } },
{ "IFCRELSEQUENCE", []()->BuildingEntity* { return new IfcRelSequence(); } },
{ "IFCRELSERVICESBUILDINGS", []()->BuildingEntity* { return new IfcRelServicesBuildings(); } },
{ "IFCRELSPACEBOUNDARY", []()->BuildingEntity* { return new IfcRelSpaceBoundary(); } },
{ "IFCRELSPACEBOUNDARY1STLEVEL", []()->BuildingEntity* { return new IfcRelSpaceBoundary1stLevel(); } },
{ "IFCRELSPACEBOUNDARY2NDLEVEL", []()->BuildingEntity* { return new IfcRelSpaceBoundary2ndLevel(); } },
{ "IFCRELVOIDSELEMENT", []()->BuildingEntity* { return new IfcRelVoidsElement(); } },
{ "IFCRELATIONSHIP", []()->BuildingEntity* { return new IfcRelationship(); } },
{ "IFCREPARAMETRISEDCOMPOSITECURVESEGMENT", []()->BuildingEntity* { return new IfcReparametrisedCompositeCurveSegment(); } },
{ "IFCREPRESENTATION", []()->BuildingEntity* { return new IfcRepresentation(); } },
{ "IFCREPRESENTATIONCONTEXT", []()->BuildingEntity* { return new IfcRepresentationContext(); } },
{ "IFCREPRESENTATIONITEM", []()->BuildingEntity* { return new IfcRepresentationItem(); } },
{ "IFCREPRESENTATIONMAP", []()->BuildingEntity* { return new IfcRepresentationMap(); } },
{ "IFCRESOURCE", []()->BuildingEntity* { return new IfcResource(); } },
{ "IFCRESOURCEAPPROVALRELATIONSHIP", []()->BuildingEntity* { return new IfcResourceApprovalRelationship(); } },
{ "IFCRESOURCECONSTRAINTRELATIONSHIP", []()->BuildingEntity* { return new IfcResourceConstraintRelationship(); } },
{ "IFCRESOURCELEVELRELATIONSHIP", []()->BuildingEntity* { return new IfcResourceLevelRelationship(); } },
{ "IFCRESOURCETIME", []()->BuildingEntity* { return new IfcResourceTime(); } },
{ "IFCREVOLVEDAREASOLID", []()->BuildingEntity* { return new IfcRevolvedAreaSolid(); } },
{ "IFCREVOLVEDAREASOLIDTAPERED", []()->BuildingEntity* { return new IfcRevolvedAreaSolidTapered(); } },
{ "IFCRIGHTCIRCULARCONE", []()->BuildingEntity* { return new IfcRightCircularCone(); } },
{ "IFCRIGHTCIRCULARCYLINDER", []()->BuildingEntity* { return new IfcRightCircularCylinder(); } },
{ "IFCROOF", []()->BuildingEntity* { return new IfcRoof(); } },
{ "IFCROOFTYPE", []()->BuildingEntity* { return new IfcRoofType(); } },
{ "IFCROOT", []()->BuildingEntity* { return new IfcRoot(); } },
{ "IFCROUNDEDRECTANGLEPROFILEDEF", []()->BuildingEntity* { return new IfcRoundedRectangleProfileDef(); } },
{ "IFCSIUNIT", []()->BuildingEntity* { return new IfcSIUnit(); } },
{ "IFCSANITARYTERMINAL", []()->BuildingEntity* { return new IfcSanitaryTerminal(); } },
{ "IFCSANITARYTERMINALTYPE", []()->BuildingEntity* { return new IfcSanitaryTerminalType(); } },
{ "IFCSCHEDULINGTIME", []()->BuildingEntity* { return new IfcSchedulingTime(); } },
{ "IFCSEAMCURVE", []()->BuildingEntity* { return new IfcSeamCurve(); } },
{ "IFCSECTIONPROPERTIES", []()->BuildingEntity* { return new IfcSectionProperties(); } },
{ "IFCSECTIONREINFORCEMENTPROPERTIES", []()->BuildingEntity* { return new IfcSectionReinforcementProperties(); } },
{ "IFCSECTIONEDSPINE", []()->BuildingEntity* { return new IfcSectionedSpine(); } },
{ "IFCSENSOR", []()->BuildingEntity* { return new IfcSensor(); } },
{ "IFCSENSORTYPE", []()->BuildingEntity* { return new IfcSensorType(); } },
{ "IFCSHADINGDEVICE", []()->BuildingEntity* { return new IfcShadingDevice(); } },
{ "IFCSHADINGDEVICETYPE", []()->BuildingEntity* { return new IfcShadingDeviceType(); } },
{ "IFCSHAPEASPECT", []()->BuildingEntity* { return new IfcShapeAspect(); } },
{ "IFCSHAPEMODEL", []()->BuildingEntity* { return new IfcShapeModel(); } },
{ "IFCSHAPEREPRESENTATION", []()->BuildingEntity* { return new IfcShapeRepresentation(); } },
{ "IFCSHELLBASEDSURFACEMODEL", []()->BuildingEntity* { return new IfcShellBasedSurfaceModel(); } },
{ "IFCSIMPLEPROPERTY", []()->BuildingEntity* { return new IfcSimpleProperty(); } },
{ "IFCSIMPLEPROPERTYTEMPLATE", []()->BuildingEntity* { return new IfcSimplePropertyTemplate(); } },
{ "IFCSITE", []()->BuildingEntity* { return new IfcSite(); } },
{ "IFCSLAB", []()->BuildingEntity* { return new IfcSlab(); } },
{ "IFCSLABELEMENTEDCASE", []()->BuildingEntity* { return new IfcSlabElementedCase(); } },
{ "IFCSLABSTANDARDCASE", []()->BuildingEntity* { return new IfcSlabStandardCase(); } },
{ "IFCSLABTYPE", []()->BuildingEntity* { return new IfcSlabType(); } },
{ "IFCSLIPPAGECONNECTIONCONDITION", []()->BuildingEntity* { return new IfcSlippageConnectionCondition(); } },
{ "IFCSOLARDEVICE", []()->BuildingEntity* { return new IfcSolarDevice(); } },
{ "IFCSOLARDEVICETYPE", []()->BuildingEntity* { return new IfcSolarDeviceType(); } },
{ "IFCSOLIDMODEL", []()->BuildingEntity* { return new IfcSolidModel(); } },
{ "IFCSPACE", []()->BuildingEntity* { return new IfcSpace(); } },
{ "IFCSPACEHEATER", []()->BuildingEntity* { return new IfcSpaceHeater(); } },
{ "IFCSPACEHEATERTYPE", []()->BuildingEntity* { return new IfcSpaceHeaterType(); } },
{ "IFCSPACETYPE", []()->BuildingEntity* { return new IfcSpaceType(); } },
{ "IFCSPATIALELEMENT", []()->BuildingEntity* { return new IfcSpatialElement(); } },
{ "IFCSPATIALELEMENTTYPE", []()->BuildingEntity* { return new IfcSpatialElementType(); } },
{ "IFCSPATIALSTRUCTUREELEMENT", []()->BuildingEntity* { return new IfcSpatialStructureElement(); } },
{ "IFCSPATIALSTRUCTUREELEMENTTYPE", []()->BuildingEntity* { return new IfcSpatialStructureElementType(); } },
{ "IFCSPATIALZONE", []()->BuildingEntity* { return new IfcSpatialZone(); } },
{ "IFCSPATIALZONETYPE", []()->BuildingEntity* { return new IfcSpatialZoneType(); } },
{ "IFCSPHERE", []()->BuildingEntity* { return new IfcSphere(); } },
{ "IFCSPHERICALSURFACE", []()->BuildingEntity* { return new IfcSphericalSurface(); } },
{ "IFCSTACKTERMINAL", []()->BuildingEntity* { return new IfcStackTerminal(); } },
{ "IFCSTACKTERMINALTYPE", []()->BuildingEntity* { return new IfcStackTerminalType(); } },
{ "IFCSTAIR", []()->BuildingEntity* { return new IfcStair(); } },
{ "IFCSTAIRFLIGHT", []()->BuildingEntity* { return new IfcStairFlight(); } },
{ "IFCSTAIRFLIGHTTYPE", []()->BuildingEntity* { return new IfcStairFlightType(); } },
{ "IFCSTAIRTYPE", []()->BuildingEntity* { return new IfcStairType(); } },
{ "IFCSTRUCTURALACTION", []()->BuildingEntity* { return new IfcStructuralAction(); } },
{ "IFCSTRUCTURALACTIVITY", []()->BuildingEntity* { return new IfcStructuralActivity(); } },
{ "IFCSTRUCTURALANALYSISMODEL", []()->BuildingEntity* { return new IfcStructuralAnalysisModel(); } },
{ "IFCSTRUCTURALCONNECTION", []()->BuildingEntity* { return new IfcStructuralConnection(); } },
{ "IFCSTRUCTURALCONNECTIONCONDITION", []()->BuildingEntity* { return new IfcStructuralConnectionCondition(); } },
{ "IFCSTRUCTURALCURVEACTION", []()->BuildingEntity* { return new IfcStructuralCurveAction(); } },
{ "IFCSTRUCTURALCURVECONNECTION", []()->BuildingEntity* { return new IfcStructuralCurveConnection(); } },
{ "IFCSTRUCTURALCURVEMEMBER", []()->BuildingEntity* { return new IfcStructuralCurveMember(); } },
{ "IFCSTRUCTURALCURVEMEMBERVARYING", []()->BuildingEntity* { return new IfcStructuralCurveMemberVarying(); } },
{ "IFCSTRUCTURALCURVEREACTION", []()->BuildingEntity* { return new IfcStructuralCurveReaction(); } },
{ "IFCSTRUCTURALITEM", []()->BuildingEntity* { return new IfcStructuralItem(); } },
{ "IFCSTRUCTURALLINEARACTION", []()->BuildingEntity* { return new IfcStructuralLinearAction(); } },
{ "IFCSTRUCTURALLOAD", []()->BuildingEntity* { return new IfcStructuralLoad(); } },
{ "IFCSTRUCTURALLOADCASE", []()->BuildingEntity* { return new IfcStructuralLoadCase(); } },
{ "IFCSTRUCTURALLOADCONFIGURATION", []()->BuildingEntity* { return new IfcStructuralLoadConfiguration(); } },
{ "IFCSTRUCTURALLOADGROUP", []()->BuildingEntity* { return new IfcStructuralLoadGroup(); } },
{ "IFCSTRUCTURALLOADLINEARFORCE", []()->BuildingEntity* { return new IfcStructuralLoadLinearForce(); } },
{ "IFCSTRUCTURALLOADORRESULT", []()->BuildingEntity* { return new IfcStructuralLoadOrResult(); } },
{ "IFCSTRUCTURALLOADPLANARFORCE", []()->BuildingEntity* { return new IfcStructuralLoadPlanarForce(); } },
{ "IFCSTRUCTURALLOADSINGLEDISPLACEMENT", []()->BuildingEntity* { return new IfcStructuralLoadSingleDisplacement(); } },
{ "IFCSTRUCTURALLOADSINGLEDISPLACEMENTDISTORTION", []()->BuildingEntity* { return new IfcStructuralLoadSingleDisplacementDistortion(); } },
{ "IFCSTRUCTURALLOADSINGLEFORCE", []()->BuildingEntity* { return new IfcStructuralLoadSingleForce(); } },
{ "IFCSTRUCTURALLOADSINGLEFORCEWARPING", []()->BuildingEntity* { return new IfcStructuralLoadSingleForceWarping(); } },
{ "IFCSTRUCTURALLOADSTATIC", []()->BuildingEntity* { return new IfcStructuralLoadStatic(); } },
{ "IFCSTRUCTURALLOADTEMPERATURE", []()->BuildingEntity* { return new IfcStructuralLoadTemperature(); } },
{ "IFCSTRUCTURALMEMBER", []()->BuildingEntity* { return new IfcStructuralMember(); } },
{ "IFCSTRUCTURALPLANARACTION", []()->BuildingEntity* { return new IfcStructuralPlanarAction(); } },
{ "IFCSTRUCTURALPOINTACTION", []()->BuildingEntity* { return new IfcStructuralPointAction(); } },
{ "IFCSTRUCTURALPOINTCONNECTION", []()->BuildingEntity* { return new IfcStructuralPointConnection(); } },
{ "IFCSTRUCTURALPOINTREACTION", []()->BuildingEntity* { return new IfcStructuralPointReaction(); } },
{ "IFCSTRUCTURALREACTION", []()->BuildingEntity* { return new IfcStructuralReaction(); } },
{ "IFCSTRUCTURALRESULTGROUP", []()->BuildingEntity* { return new IfcStructuralResultGroup(); } },
{ "IFCSTRUCTURALSURFACEACTION", []()->BuildingEntity* { return new IfcStructuralSurfaceAction(); } },
{ "IFCSTRUCTURALSURFACECONNECTION", []()->BuildingEntity* { return new IfcStructuralSurfaceConnection(); } },
{ "IFCSTRUCTURALSURFACEMEMBER", []()->BuildingEntity* { return new IfcStructuralSurfaceMember(); } },
{ "IFCSTRUCTURALSURFACEMEMBERVARYING", []()->BuildingEntity* { return new IfcStructuralSurfaceMemberVarying(); } },
{ "IFCSTRUCTURALSURFACEREACTION", []()->BuildingEntity* { return new IfcStructuralSurfaceReaction(); } },
{ "IFCSTYLEMODEL", []()->BuildingEntity* { return new IfcStyleModel(); } },
{ "IFCSTYLEDITEM", []()->BuildingEntity* { return new IfcStyledItem(); } },
{ "IFCSTYLEDREPRESENTATION", []()->BuildingEntity* { return new IfcStyledRepresentation(); } },
{ "IFCSUBCONTRACTRESOURCE", []()->BuildingEntity* { return new IfcSubContractResource(); } },
{ "IFCSUBCONTRACTRESOURCETYPE", []()->BuildingEntity* { return new IfcSubContractResourceType(); } },
{ "IFCSUBEDGE", []()->BuildingEntity* { return new IfcSubedge(); } },
{ "IFCSURFACE", []()->BuildingEntity* { return new IfcSurface(); } },
{ "IFCSURFACECURVE", []()->BuildingEntity* { return new IfcSurfaceCurve(); } },
{ "IFCSURFACECURVESWEPTAREASOLID", []()->BuildingEntity* { return new IfcSurfaceCurveSweptAreaSolid(); } },
{ "IFCSURFACEFEATURE", []()->BuildingEntity* { return new IfcSurfaceFeature(); } },
{ "IFCSURFACEOFLINEAREXTRUSION", []()->BuildingEntity* { return new IfcSurfaceOfLinearExtrusion(); } },
{ "IFCSURFACEOFREVOLUTION", []()->BuildingEntity* { return new IfcSurfaceOfRevolution(); } },
{ "IFCSURFACEREINFORCEMENTAREA", []()->BuildingEntity* { return new IfcSurfaceReinforcementArea(); } },
{ "IFCSURFACESTYLE", []()->BuildingEntity* { return new IfcSurfaceStyle(); } },
{ "IFCSURFACESTYLELIGHTING", []()->BuildingEntity* { return new IfcSurfaceStyleLighting(); } },
{ "IFCSURFACESTYLEREFRACTION", []()->BuildingEntity* { return new IfcSurfaceStyleRefraction(); } },
{ "IFCSURFACESTYLERENDERING", []()->BuildingEntity* { return new IfcSurfaceStyleRendering(); } },
{ "IFCSURFACESTYLESHADING", []()->BuildingEntity* { return new IfcSurfaceStyleShading(); } },
{ "IFCSURFACESTYLEWITHTEXTURES", []()->BuildingEntity* { return new IfcSurfaceStyleWithTextures(); } },
{ "IFCSURFACETEXTURE", []()->BuildingEntity* { return new IfcSurfaceTexture(); } },
{ "IFCSWEPTAREASOLID", []()->BuildingEntity* { return new IfcSweptAreaSolid(); } },
{ "IFCSWEPTDISKSOLID", []()->BuildingEntity* { return new IfcSweptDiskSolid(); } },
{ "IFCSWEPTDISKSOLIDPOLYGONAL", []()->BuildingEntity* { return new IfcSweptDiskSolidPolygonal(); } },
{ "IFCSWEPTSURFACE", []()->BuildingEntity* { return new IfcSweptSurface(); } },
{ "IFCSWITCHINGDEVICE", []()->BuildingEntity* { return new IfcSwitchingDevice(); } },
{ "IFCSWITCHINGDEVICETYPE", []()->BuildingEntity* { return new IfcSwitchingDeviceType(); } },
{ "IFCSYSTEM", []()->BuildingEntity* { return new IfcSystem(); } },
{ "IFCSYSTEMFURNITUREELEMENT", []()->BuildingEntity* { return new IfcSystemFurnitureElement(); } },
{ "IFCSYSTEMFURNITUREELEMENTTYPE", []()->BuildingEntity* { return new IfcSystemFurnitureElementType(); } },
{ "IFCTSHAPEPROFILEDEF", []()->BuildingEntity* { return new IfcTShapeProfileDef(); } },
{ "IFCTABLE", []()->BuildingEntity* { return new IfcTable(); } },
{ "IFCTABLECOLUMN", []()->BuildingEntity* { return new IfcTableColumn(); } },
{ "IFCTABLEROW", []()->BuildingEntity* { return new IfcTableRow(); } },
{ "IFCTANK", []()->BuildingEntity* { return new IfcTank(); } },
{ "IFCTANKTYPE", []()->BuildingEntity* { return new IfcTankType(); } },
{ "IFCTASK", []()->BuildingEntity* { return new IfcTask(); } },
{ "IFCTASKTIME", []()->BuildingEntity* { return new IfcTaskTime(); } },
{ "IFCTASKTIMERECURRING", []()->BuildingEntity* { return new IfcTaskTimeRecurring(); } },
{ "IFCTASKTYPE", []()->BuildingEntity* { return new IfcTaskType(); } },
{ "IFCTELECOMADDRESS", []()->BuildingEntity* { return new IfcTelecomAddress(); } },
{ "IFCTENDON", []()->BuildingEntity* { return new IfcTendon(); } },
{ "IFCTENDONANCHOR", []()->BuildingEntity* { return new IfcTendonAnchor(); } },
{ "IFCTENDONANCHORTYPE", []()->BuildingEntity* { return new IfcTendonAnchorType(); } },
{ "IFCTENDONTYPE", []()->BuildingEntity* { return new IfcTendonType(); } },
{ "IFCTESSELLATEDFACESET", []()->BuildingEntity* { return new IfcTessellatedFaceSet(); } },
{ "IFCTESSELLATEDITEM", []()->BuildingEntity* { return new IfcTessellatedItem(); } },
{ "IFCTEXTLITERAL", []()->BuildingEntity* { return new IfcTextLiteral(); } },
{ "IFCTEXTLITERALWITHEXTENT", []()->BuildingEntity* { return new IfcTextLiteralWithExtent(); } },
{ "IFCTEXTSTYLE", []()->BuildingEntity* { return new IfcTextStyle(); } },
{ "IFCTEXTSTYLEFONTMODEL", []()->BuildingEntity* { return new IfcTextStyleFontModel(); } },
{ "IFCTEXTSTYLEFORDEFINEDFONT", []()->BuildingEntity* { return new IfcTextStyleForDefinedFont(); } },
{ "IFCTEXTSTYLETEXTMODEL", []()->BuildingEntity* { return new IfcTextStyleTextModel(); } },
{ "IFCTEXTURECOORDINATE", []()->BuildingEntity* { return new IfcTextureCoordinate(); } },
{ "IFCTEXTURECOORDINATEGENERATOR", []()->BuildingEntity* { return new IfcTextureCoordinateGenerator(); } },
{ "IFCTEXTUREMAP", []()->BuildingEntity* { return new IfcTextureMap(); } },
{ "IFCTEXTUREVERTEX", []()->BuildingEntity* { return new IfcTextureVertex(); } },
{ "IFCTEXTUREVERTEXLIST", []()->BuildingEntity* { return new IfcTextureVertexList(); } },
{ "IFCTIMEPERIOD", []()->BuildingEntity* { return new IfcTimePeriod(); } },
{ "IFCTIMESERIES", []()->BuildingEntity* { return new IfcTimeSeries(); } },
{ "IFCTIMESERIESVALUE", []()->BuildingEntity* { return new IfcTimeSeriesValue(); } },
{ "IFCTOPOLOGICALREPRESENTATIONITEM", []()->BuildingEntity* { return new IfcTopologicalRepresentationItem(); } },
{ "IFCTOPOLOGYREPRESENTATION", []()->BuildingEntity* { return new IfcTopologyRepresentation(); } },
{ "IFCTOROIDALSURFACE", []()->BuildingEntity* { return new IfcToroidalSurface(); } },
{ "IFCTRANSFORMER", []()->BuildingEntity* { return new IfcTransformer(); } },
{ "IFCTRANSFORMERTYPE", []()->BuildingEntity* { return new IfcTransformerType(); } },
{ "IFCTRANSPORTELEMENT", []()->BuildingEntity* { return new IfcTransportElement(); } },
{ "IFCTRANSPORTELEMENTTYPE", []()->BuildingEntity* { return new IfcTransportElementType(); } },
{ "IFCTRAPEZIUMPROFILEDEF", []()->BuildingEntity* { return new IfcTrapeziumProfileDef(); } },
{ "IFCTRIANGULATEDFACESET", []()->BuildingEntity* { return new IfcTriangulatedFaceSet(); } },
{ "IFCTRIMMEDCURVE", []()->BuildingEntity* { return new IfcTrimmedCurve(); } },
{ "IFCTUBEBUNDLE", []()->BuildingEntity* { return new IfcTubeBundle(); } },
{ "IFCTUBEBUNDLETYPE", []()->BuildingEntity* { return new IfcTubeBundleType(); } },
{ "IFCTYPEOBJECT", []()->BuildingEntity* { return new IfcTypeObject(); } },
{ "IFCTYPEPROCESS", []()->BuildingEntity* { return new IfcTypeProcess(); } },
{ "IFCTYPEPRODUCT", []()->BuildingEntity* { return new IfcTypeProduct(); } },
{ "IFCTYPERESOURCE", []()->BuildingEntity* { return new IfcTypeResource(); } },
{ "IFCUSHAPEPROFILEDEF", []()->BuildingEntity* { return new IfcUShapeProfileDef(); } },
{ "IFCUNITASSIGNMENT", []()->BuildingEntity* { return new IfcUnitAssignment(); } },
{ "IFCUNITARYCONTROLELEMENT", []()->BuildingEntity* { return new IfcUnitaryControlElement(); } },
{ "IFCUNITARYCONTROLELEMENTTYPE", []()->BuildingEntity* { return new IfcUnitaryControlElementType(); } },
{ "IFCUNITARYEQUIPMENT", []()->BuildingEntity* { return new IfcUnitaryEquipment(); } },
{ "IFCUNITARYEQUIPMENTTYPE", []()->BuildingEntity* { return new IfcUnitaryEquipmentType(); } },
{ "IFCVALVE", []()->BuildingEntity* { return new IfcValve(); } },
{ "IFCVALVETYPE", []()->BuildingEntity* { return new IfcValveType(); } },
{ "IFCVECTOR", []()->BuildingEntity* { return new IfcVector(); } },
{ "IFCVERTEX", []()->BuildingEntity* { return new IfcVertex(); } },
{ "IFCVERTEXLOOP", []()->BuildingEntity* { return new IfcVertexLoop(); } },
{ "IFCVERTEXPOINT", []()->BuildingEntity* { return new IfcVertexPoint(); } },
{ "IFCVIBRATIONISOLATOR", []()->BuildingEntity* { return new IfcVibrationIsolator(); } },
{ "IFCVIBRATIONISOLATORTYPE", []()->BuildingEntity* { return new IfcVibrationIsolatorType(); } },
{ "IFCVIRTUALELEMENT", []()->BuildingEntity* { return new IfcVirtualElement(); } },
{ "IFCVIRTUALGRIDINTERSECTION", []()->BuildingEntity* { return new IfcVirtualGridIntersection(); } },
{ "IFCVOIDINGFEATURE", []()->BuildingEntity* { return new IfcVoidingFeature(); } },
{ "IFCWALL", []()->BuildingEntity* { return new IfcWall(); } },
{ "IFCWALLELEMENTEDCASE", []()->BuildingEntity* { return new IfcWallElementedCase(); } },
{ "IFCWALLSTANDARDCASE", []()->BuildingEntity* { return new IfcWallStandardCase(); } },
{ "IFCWALLTYPE", []()->BuildingEntity* { return new IfcWallType(); } },
{ "IFCWASTETERMINAL", []()->BuildingEntity* { return new IfcWasteTerminal(); } },
{ "IFCWASTETERMINALTYPE", []()->BuildingEntity* { return new IfcWasteTerminalType(); } },
{ "IFCWINDOW", []()->BuildingEntity* { return new IfcWindow(); } },
{ "IFCWINDOWLININGPROPERTIES", []()->BuildingEntity* { return new IfcWindowLiningProperties(); } },
{ "IFCWINDOWPANELPROPERTIES", []()->BuildingEntity* { return new IfcWindowPanelProperties(); } },
{ "IFCWINDOWSTANDARDCASE", []()->BuildingEntity* { return new IfcWindowStandardCase(); } },
{ "IFCWINDOWSTYLE", []()->BuildingEntity* { return new IfcWindowStyle(); } },
{ "IFCWINDOWTYPE", []()->BuildingEntity* { return new IfcWindowType(); } },
{ "IFCWORKCALENDAR", []()->BuildingEntity* { return new IfcWorkCalendar(); } },
{ "IFCWORKCONTROL", []()->BuildingEntity* { return new IfcWorkControl(); } },
{ "IFCWORKPLAN", []()->BuildingEntity* { return new IfcWorkPlan(); } },
{ "IFCWORKSCHEDULE", []()->BuildingEntity* { return new IfcWorkSchedule(); } },
{ "IFCWORKTIME", []()->BuildingEntity* { return new IfcWorkTime(); } },
{ "IFCZSHAPEPROFILEDEF", []()->BuildingEntity* { return new IfcZShapeProfileDef(); } },
{ "IFCZONE", []()->BuildingEntity* { return new IfcZone(); } }
};

BuildingEntity* EntityFactory::createEntityObject( const std::string& class_name_upper )
{
	auto it_find = entity_factory_map.find( class_name_upper );
	if( it_find != entity_factory_map.end() )
	{
		return it_find->second();
	}
	// class_name not registered
	return nullptr;
}
void EntityFactory::emptyMapOfEntities()
{
	entity_factory_map.clear();
}
