// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.

//! Auto-generated IFC Type Enum
//!
//! Generated from EXPRESS schema: IFC4X3_DEV_923b0514
//!
//! DO NOT EDIT - This file is auto-generated by @ifc-lite/codegen

use std::fmt;

/// IFC Entity Types
///
/// All 876 entity types from the IFC4X3_DEV_923b0514 schema.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum IfcType {
    // Spatial Structure
    IfcBoxedHalfSpace,
    IfcBridge,
    IfcBridgePart,
    IfcBuilding,
    IfcBuildingElementPart,
    IfcBuildingElementPartType,
    IfcBuildingElementProxy,
    IfcBuildingElementProxyType,
    IfcBuildingStorey,
    IfcBuildingSystem,
    IfcFacility,
    /// Abstract entity
    IfcFacilityPart,
    IfcFacilityPartCommon,
    IfcHalfSpaceSolid,
    IfcMarineFacility,
    IfcMarinePart,
    IfcPolygonalBoundedHalfSpace,
    IfcProject,
    IfcProjectLibrary,
    IfcProjectOrder,
    IfcProjectedCRS,
    IfcProjectionElement,
    IfcRailway,
    IfcRailwayPart,
    IfcRelCoversSpaces,
    IfcRelProjectsElement,
    IfcRelServicesBuildings,
    IfcRelSpaceBoundary,
    IfcRelSpaceBoundary1stLevel,
    IfcRelSpaceBoundary2ndLevel,
    IfcRoad,
    IfcRoadPart,
    IfcSite,
    IfcSpace,
    IfcSpaceHeater,
    IfcSpaceHeaterType,
    IfcSpaceType,
    /// Abstract entity
    IfcSpatialStructureElement,

    // Building Elements
    IfcBeam,
    IfcBeamType,
    IfcColumn,
    IfcColumnType,
    IfcCooledBeam,
    IfcCooledBeamType,
    IfcCurtainWall,
    IfcCurtainWallType,
    IfcSlab,
    IfcSlabType,
    IfcTableColumn,
    IfcWall,
    IfcWallStandardCase,
    IfcWallType,

    // Openings
    IfcDoor,
    IfcDoorLiningProperties,
    IfcDoorPanelProperties,
    IfcDoorType,
    IfcOpeningElement,
    IfcWindow,
    IfcWindowLiningProperties,
    IfcWindowPanelProperties,
    IfcWindowType,

    // MEP
    IfcActuator,
    IfcAirTerminal,
    IfcAirTerminalBox,
    IfcAirToAirHeatRecovery,
    IfcAlarm,
    IfcAudioVisualAppliance,
    IfcBoiler,
    IfcBurner,
    IfcCableCarrierFitting,
    IfcCableCarrierFittingType,
    IfcCableCarrierSegment,
    IfcCableCarrierSegmentType,
    IfcCableFitting,
    IfcCableFittingType,
    IfcCableSegment,
    IfcCableSegmentType,
    IfcChiller,
    IfcCoil,
    IfcCommunicationsAppliance,
    IfcCompressor,
    IfcCondenser,
    IfcController,
    IfcConveyorSegment,
    IfcCoolingTower,
    IfcDamper,
    IfcDistributionBoard,
    IfcDistributionChamberElement,
    IfcDistributionControlElement,
    IfcDistributionElement,
    IfcDistributionFlowElement,
    IfcDuctFitting,
    IfcDuctFittingType,
    IfcDuctSegment,
    IfcDuctSegmentType,
    IfcDuctSilencer,
    IfcDuctSilencerType,
    IfcElectricAppliance,
    IfcElectricDistributionBoard,
    IfcElectricFlowStorageDevice,
    IfcElectricFlowTreatmentDevice,
    IfcElectricGenerator,
    IfcElectricMotor,
    IfcElectricTimeControl,
    IfcEnergyConversionDevice,
    IfcEngine,
    IfcEvaporativeCooler,
    IfcEvaporator,
    IfcFan,
    IfcFilter,
    IfcFireSuppressionTerminal,
    IfcFlowController,
    IfcFlowFitting,
    IfcFlowInstrument,
    IfcFlowMeter,
    IfcFlowMovingDevice,
    IfcFlowSegment,
    IfcFlowStorageDevice,
    IfcFlowTerminal,
    IfcFlowTreatmentDevice,
    IfcHeatExchanger,
    IfcHumidifier,
    IfcInterceptor,
    IfcJunctionBox,
    IfcLamp,
    IfcLightFixture,
    IfcLiquidTerminal,
    IfcMedicalDevice,
    IfcMobileTelecommunicationsAppliance,
    IfcMotorConnection,
    IfcOutlet,
    IfcPipeFitting,
    IfcPipeFittingType,
    IfcPipeSegment,
    IfcPipeSegmentType,
    IfcProtectiveDevice,
    IfcProtectiveDeviceTrippingUnit,
    IfcPump,
    IfcSanitaryTerminal,
    IfcSensor,
    IfcSignal,
    IfcSolarDevice,
    IfcStackTerminal,
    IfcSwitchingDevice,
    IfcTank,
    IfcTransformer,
    IfcTubeBundle,
    IfcUnitaryControlElement,
    IfcUnitaryEquipment,
    IfcValve,
    IfcWasteTerminal,

    // Geometry Representations
    IfcAsymmetricIShapeProfileDef,
    IfcCShapeProfileDef,
    IfcGeometricRepresentationContext,
    /// Abstract entity
    IfcGeometricRepresentationItem,
    IfcGeometricRepresentationSubContext,
    IfcGeometricSet,
    IfcIShapeProfileDef,
    IfcLShapeProfileDef,
    IfcMaterialDefinitionRepresentation,
    IfcProductDefinitionShape,
    /// Abstract entity
    IfcProductRepresentation,
    /// Abstract entity
    IfcRepresentation,
    /// Abstract entity
    IfcRepresentationContext,
    /// Abstract entity
    IfcRepresentationItem,
    IfcRepresentationMap,
    IfcShapeAspect,
    /// Abstract entity
    IfcShapeModel,
    IfcShapeRepresentation,
    IfcStyledRepresentation,
    IfcTShapeProfileDef,
    /// Abstract entity
    IfcTopologicalRepresentationItem,
    IfcTopologyRepresentation,
    IfcUShapeProfileDef,
    IfcZShapeProfileDef,

    // Geometry Primitives
    IfcAdvancedBrep,
    IfcAdvancedBrepWithVoids,
    IfcBooleanClippingResult,
    IfcBooleanResult,
    IfcConnectedFaceSet,
    /// Abstract entity
    IfcCsgPrimitive3D,
    IfcCsgSolid,
    /// Abstract entity
    IfcDirectrixCurveSweptAreaSolid,
    IfcDirectrixDerivedReferenceSweptAreaSolid,
    IfcExtrudedAreaSolid,
    IfcExtrudedAreaSolidTapered,
    IfcFacetedBrep,
    IfcFacetedBrepWithVoids,
    IfcFixedReferenceSweptAreaSolid,
    /// Abstract entity
    IfcManifoldSolidBrep,
    IfcPolygonalFaceSet,
    IfcRevolvedAreaSolid,
    IfcRevolvedAreaSolidTapered,
    /// Abstract entity
    IfcSectionedSolid,
    IfcSectionedSolidHorizontal,
    /// Abstract entity
    IfcSolidModel,
    IfcSurfaceCurveSweptAreaSolid,
    /// Abstract entity
    IfcSweptAreaSolid,
    IfcSweptDiskSolid,
    IfcSweptDiskSolidPolygonal,
    /// Abstract entity
    IfcTessellatedFaceSet,
    IfcTriangulatedFaceSet,

    // Profiles
    IfcArbitraryClosedProfileDef,
    IfcArbitraryOpenProfileDef,
    IfcArbitraryProfileDefWithVoids,
    IfcCenterLineProfileDef,
    IfcCircleHollowProfileDef,
    IfcCircleProfileDef,
    IfcCompositeProfileDef,
    IfcDerivedProfileDef,
    IfcEllipseProfileDef,
    IfcMaterialProfile,
    IfcMaterialProfileSet,
    IfcMaterialProfileSetUsage,
    IfcMaterialProfileSetUsageTapering,
    IfcMaterialProfileWithOffsets,
    IfcMirroredProfileDef,
    IfcOpenCrossProfileDef,
    /// Abstract entity
    IfcParameterizedProfileDef,
    IfcProfileDef,
    IfcProfileProperties,
    IfcRectangleHollowProfileDef,
    IfcRectangleProfileDef,
    IfcRelAssociatesProfileDef,
    IfcRoundedRectangleProfileDef,
    IfcTrapeziumProfileDef,

    // Curves
    IfcAxis2PlacementLinear,
    /// Abstract entity
    IfcBSplineCurve,
    IfcBSplineCurveWithKnots,
    /// Abstract entity
    IfcBSplineSurface,
    IfcBSplineSurfaceWithKnots,
    IfcBoundaryCurve,
    /// Abstract entity
    IfcBoundedCurve,
    IfcCircle,
    IfcCompositeCurve,
    IfcCompositeCurveOnSurface,
    IfcCompositeCurveSegment,
    IfcConnectionCurveGeometry,
    /// Abstract entity
    IfcCurve,
    IfcCurveBoundedPlane,
    IfcCurveBoundedSurface,
    IfcCurveSegment,
    IfcCurveStyle,
    IfcCurveStyleFont,
    IfcCurveStyleFontAndScaling,
    IfcCurveStyleFontPattern,
    IfcDraughtingPreDefinedCurveFont,
    IfcEdgeCurve,
    IfcEllipse,
    IfcGeometricCurveSet,
    IfcGradientCurve,
    IfcIndexedPolyCurve,
    IfcIntersectionCurve,
    IfcLine,
    IfcLinearElement,
    IfcLinearPlacement,
    IfcLinearPositioningElement,
    /// Abstract entity
    IfcOffsetCurve,
    IfcOffsetCurve2D,
    IfcOffsetCurve3D,
    IfcOffsetCurveByDistances,
    IfcOuterBoundaryCurve,
    IfcPointOnCurve,
    IfcPolyline,
    IfcPolynomialCurve,
    /// Abstract entity
    IfcPreDefinedCurveFont,
    IfcRationalBSplineCurveWithKnots,
    IfcRationalBSplineSurfaceWithKnots,
    IfcReparametrisedCompositeCurveSegment,
    IfcSeamCurve,
    IfcSegmentedReferenceCurve,
    IfcStructuralCurveAction,
    IfcStructuralCurveConnection,
    IfcStructuralCurveMember,
    IfcStructuralCurveMemberVarying,
    IfcStructuralCurveReaction,
    IfcStructuralLinearAction,
    IfcStructuralLoadLinearForce,
    IfcSurfaceCurve,
    IfcSurfaceOfLinearExtrusion,
    IfcTrimmedCurve,

    // Surfaces
    /// Abstract entity
    IfcBoundedSurface,
    IfcConnectionSurfaceGeometry,
    IfcCylindricalSurface,
    /// Abstract entity
    IfcElementarySurface,
    IfcExternallyDefinedSurfaceStyle,
    IfcFaceBasedSurfaceModel,
    IfcFaceSurface,
    IfcPlane,
    IfcPointOnSurface,
    IfcRectangularTrimmedSurface,
    IfcSectionedSurface,
    IfcShellBasedSurfaceModel,
    IfcSphericalSurface,
    IfcStructuralSurfaceAction,
    IfcStructuralSurfaceConnection,
    IfcStructuralSurfaceMember,
    IfcStructuralSurfaceMemberVarying,
    IfcStructuralSurfaceReaction,
    /// Abstract entity
    IfcSurface,
    IfcSurfaceFeature,
    IfcSurfaceOfRevolution,
    IfcSurfaceReinforcementArea,
    IfcSurfaceStyle,
    IfcSurfaceStyleLighting,
    IfcSurfaceStyleRefraction,
    IfcSurfaceStyleRendering,
    IfcSurfaceStyleShading,
    IfcSurfaceStyleWithTextures,
    /// Abstract entity
    IfcSurfaceTexture,
    /// Abstract entity
    IfcSweptSurface,
    IfcToroidalSurface,

    // Relationships
    IfcRelAdheresToElement,
    IfcRelAggregates,
    /// Abstract entity
    IfcRelAssigns,
    IfcRelAssignsToActor,
    IfcRelAssignsToControl,
    IfcRelAssignsToGroup,
    IfcRelAssignsToGroupByFactor,
    IfcRelAssignsToProcess,
    IfcRelAssignsToProduct,
    IfcRelAssignsToResource,
    /// Abstract entity
    IfcRelAssociates,
    IfcRelAssociatesApproval,
    IfcRelAssociatesClassification,
    IfcRelAssociatesConstraint,
    IfcRelAssociatesDocument,
    IfcRelAssociatesLibrary,
    IfcRelAssociatesMaterial,
    /// Abstract entity
    IfcRelConnects,
    IfcRelConnectsElements,
    IfcRelConnectsPathElements,
    IfcRelConnectsPortToElement,
    IfcRelConnectsPorts,
    IfcRelConnectsStructuralActivity,
    IfcRelConnectsStructuralMember,
    IfcRelConnectsWithEccentricity,
    IfcRelConnectsWithRealizingElements,
    IfcRelContainedInSpatialStructure,
    IfcRelCoversBldgElements,
    IfcRelDeclares,
    /// Abstract entity
    IfcRelDecomposes,
    /// Abstract entity
    IfcRelDefines,
    IfcRelDefinesByObject,
    IfcRelDefinesByProperties,
    IfcRelDefinesByTemplate,
    IfcRelDefinesByType,
    IfcRelFillsElement,
    IfcRelFlowControlElements,
    IfcRelInterferesElements,
    IfcRelNests,
    IfcRelPositions,
    IfcRelReferencedInSpatialStructure,
    IfcRelSequence,
    IfcRelVoidsElement,
    /// Abstract entity
    IfcRelationship,

    // Properties
    IfcAppliedValue,
    IfcComplexProperty,
    IfcComplexPropertyTemplate,
    IfcCostValue,
    IfcElementQuantity,
    IfcIrregularTimeSeriesValue,
    IfcPhysicalComplexQuantity,
    /// Abstract entity
    IfcPhysicalQuantity,
    /// Abstract entity
    IfcPhysicalSimpleQuantity,
    /// Abstract entity
    IfcPreDefinedPropertySet,
    /// Abstract entity
    IfcProperty,
    /// Abstract entity
    IfcPropertyAbstraction,
    IfcPropertyBoundedValue,
    /// Abstract entity
    IfcPropertyDefinition,
    IfcPropertyDependencyRelationship,
    IfcPropertyEnumeratedValue,
    IfcPropertyEnumeration,
    IfcPropertyListValue,
    IfcPropertyReferenceValue,
    IfcPropertySet,
    /// Abstract entity
    IfcPropertySetDefinition,
    IfcPropertySetTemplate,
    IfcPropertySingleValue,
    IfcPropertyTableValue,
    /// Abstract entity
    IfcPropertyTemplate,
    /// Abstract entity
    IfcPropertyTemplateDefinition,
    IfcQuantityArea,
    IfcQuantityCount,
    IfcQuantityLength,
    IfcQuantityNumber,
    /// Abstract entity
    IfcQuantitySet,
    IfcQuantityTime,
    IfcQuantityVolume,
    IfcQuantityWeight,
    /// Abstract entity
    IfcSimpleProperty,
    IfcSimplePropertyTemplate,
    IfcTimeSeriesValue,

    // Materials
    IfcConstructionMaterialResource,
    IfcConstructionMaterialResourceType,
    IfcMaterial,
    IfcMaterialClassificationRelationship,
    IfcMaterialConstituent,
    IfcMaterialConstituentSet,
    /// Abstract entity
    IfcMaterialDefinition,
    IfcMaterialLayer,
    IfcMaterialLayerSet,
    IfcMaterialLayerSetUsage,
    IfcMaterialLayerWithOffsets,
    IfcMaterialList,
    IfcMaterialProperties,
    IfcMaterialRelationship,
    /// Abstract entity
    IfcMaterialUsageDefinition,

    // Presentation & Style
    IfcColourRgb,
    IfcColourRgbList,
    /// Abstract entity
    IfcColourSpecification,
    IfcDraughtingPreDefinedColour,
    IfcExternallyDefinedHatchStyle,
    IfcFillAreaStyle,
    IfcFillAreaStyleHatching,
    IfcFillAreaStyleTiles,
    IfcIndexedColourMap,
    /// Abstract entity
    IfcPreDefinedColour,
    /// Abstract entity
    IfcPresentationItem,
    IfcPresentationLayerAssignment,
    IfcPresentationLayerWithStyle,
    /// Abstract entity
    IfcPresentationStyle,
    /// Abstract entity
    IfcStyleModel,
    IfcStyledItem,
    IfcTextStyle,
    IfcTextStyleFontModel,
    IfcTextStyleForDefinedFont,
    IfcTextStyleTextModel,

    // Core & Common
    IfcBuiltElement,
    IfcBuiltElementType,
    IfcCivilElement,
    IfcCivilElementType,
    IfcConstructionEquipmentResource,
    IfcConstructionEquipmentResourceType,
    IfcConstructionProductResource,
    IfcConstructionProductResourceType,
    /// Abstract entity
    IfcConstructionResource,
    /// Abstract entity
    IfcConstructionResourceType,
    IfcCrewResource,
    IfcCrewResourceType,
    IfcDerivedUnitElement,
    IfcDistributionChamberElementType,
    /// Abstract entity
    IfcDistributionControlElementType,
    IfcDistributionElementType,
    /// Abstract entity
    IfcDistributionFlowElementType,
    IfcEarthworksElement,
    /// Abstract entity
    IfcElement,
    IfcElementAssembly,
    IfcElementAssemblyType,
    /// Abstract entity
    IfcElementComponent,
    /// Abstract entity
    IfcElementComponentType,
    /// Abstract entity
    IfcElementType,
    IfcExternalSpatialElement,
    /// Abstract entity
    IfcExternalSpatialStructureElement,
    /// Abstract entity
    IfcFeatureElement,
    /// Abstract entity
    IfcFeatureElementAddition,
    /// Abstract entity
    IfcFeatureElementSubtraction,
    IfcFurnishingElement,
    IfcFurnishingElementType,
    IfcGeographicElement,
    IfcGeographicElementType,
    /// Abstract entity
    IfcGeotechnicalElement,
    IfcLaborResource,
    IfcLaborResourceType,
    IfcNavigationElement,
    IfcNavigationElementType,
    /// Abstract entity
    IfcObject,
    /// Abstract entity
    IfcObjectDefinition,
    /// Abstract entity
    IfcObjectPlacement,
    IfcObjective,
    /// Abstract entity
    IfcPositioningElement,
    /// Abstract entity
    IfcProduct,
    /// Abstract entity
    IfcReinforcingElement,
    /// Abstract entity
    IfcReinforcingElementType,
    /// Abstract entity
    IfcResource,
    IfcResourceApprovalRelationship,
    IfcResourceConstraintRelationship,
    /// Abstract entity
    IfcResourceLevelRelationship,
    IfcResourceTime,
    /// Abstract entity
    IfcRoot,
    /// Abstract entity
    IfcSpatialElement,
    /// Abstract entity
    IfcSpatialElementType,
    /// Abstract entity
    IfcSpatialStructureElementType,
    IfcSubContractResource,
    IfcSubContractResourceType,
    IfcSystemFurnitureElement,
    IfcSystemFurnitureElementType,
    IfcTrackElement,
    IfcTrackElementType,
    IfcTransportElement,
    IfcTransportElementType,
    IfcTypeObject,
    IfcTypeProduct,
    /// Abstract entity
    IfcTypeResource,
    IfcUnitaryControlElementType,
    IfcVirtualElement,

    // Other
    IfcActionRequest,
    IfcActor,
    IfcActorRole,
    IfcActuatorType,
    /// Abstract entity
    IfcAddress,
    IfcAdvancedFace,
    IfcAirTerminalBoxType,
    IfcAirTerminalType,
    IfcAirToAirHeatRecoveryType,
    IfcAlarmType,
    IfcAlignment,
    IfcAlignmentCant,
    IfcAlignmentCantSegment,
    IfcAlignmentHorizontal,
    IfcAlignmentHorizontalSegment,
    /// Abstract entity
    IfcAlignmentParameterSegment,
    IfcAlignmentSegment,
    IfcAlignmentVertical,
    IfcAlignmentVerticalSegment,
    IfcAnnotation,
    IfcAnnotationFillArea,
    IfcApplication,
    IfcApproval,
    IfcApprovalRelationship,
    IfcAsset,
    IfcAudioVisualApplianceType,
    IfcAxis1Placement,
    IfcAxis2Placement2D,
    IfcAxis2Placement3D,
    IfcBearing,
    IfcBearingType,
    IfcBlobTexture,
    IfcBlock,
    IfcBoilerType,
    IfcBorehole,
    /// Abstract entity
    IfcBoundaryCondition,
    IfcBoundaryEdgeCondition,
    IfcBoundaryFaceCondition,
    IfcBoundaryNodeCondition,
    IfcBoundaryNodeConditionWarping,
    IfcBoundingBox,
    IfcBuiltSystem,
    IfcBurnerType,
    IfcCaissonFoundation,
    IfcCaissonFoundationType,
    IfcCartesianPoint,
    /// Abstract entity
    IfcCartesianPointList,
    IfcCartesianPointList2D,
    IfcCartesianPointList3D,
    /// Abstract entity
    IfcCartesianTransformationOperator,
    IfcCartesianTransformationOperator2D,
    IfcCartesianTransformationOperator2DnonUniform,
    IfcCartesianTransformationOperator3D,
    IfcCartesianTransformationOperator3DnonUniform,
    IfcChillerType,
    IfcChimney,
    IfcChimneyType,
    IfcClassification,
    IfcClassificationReference,
    IfcClosedShell,
    IfcClothoid,
    IfcCoilType,
    IfcCommunicationsApplianceType,
    IfcCompressorType,
    IfcCondenserType,
    /// Abstract entity
    IfcConic,
    /// Abstract entity
    IfcConnectionGeometry,
    IfcConnectionPointEccentricity,
    IfcConnectionPointGeometry,
    IfcConnectionVolumeGeometry,
    /// Abstract entity
    IfcConstraint,
    /// Abstract entity
    IfcContext,
    IfcContextDependentUnit,
    /// Abstract entity
    IfcControl,
    IfcControllerType,
    IfcConversionBasedUnit,
    IfcConversionBasedUnitWithOffset,
    IfcConveyorSegmentType,
    IfcCoolingTowerType,
    /// Abstract entity
    IfcCoordinateOperation,
    /// Abstract entity
    IfcCoordinateReferenceSystem,
    IfcCosineSpiral,
    IfcCostItem,
    IfcCostSchedule,
    IfcCourse,
    IfcCourseType,
    IfcCovering,
    IfcCoveringType,
    IfcCurrencyRelationship,
    IfcDamperType,
    IfcDeepFoundation,
    IfcDeepFoundationType,
    IfcDerivedUnit,
    IfcDimensionalExponents,
    IfcDirection,
    IfcDiscreteAccessory,
    IfcDiscreteAccessoryType,
    IfcDistributionBoardType,
    IfcDistributionCircuit,
    IfcDistributionPort,
    IfcDistributionSystem,
    IfcDocumentInformation,
    IfcDocumentInformationRelationship,
    IfcDocumentReference,
    IfcEarthworksCut,
    IfcEarthworksFill,
    IfcEdge,
    IfcEdgeLoop,
    IfcElectricApplianceType,
    IfcElectricDistributionBoardType,
    IfcElectricFlowStorageDeviceType,
    IfcElectricFlowTreatmentDeviceType,
    IfcElectricGeneratorType,
    IfcElectricMotorType,
    IfcElectricTimeControlType,
    /// Abstract entity
    IfcEnergyConversionDeviceType,
    IfcEngineType,
    IfcEvaporativeCoolerType,
    IfcEvaporatorType,
    IfcEvent,
    IfcEventTime,
    IfcEventType,
    /// Abstract entity
    IfcExtendedProperties,
    /// Abstract entity
    IfcExternalInformation,
    /// Abstract entity
    IfcExternalReference,
    IfcExternalReferenceRelationship,
    IfcExternallyDefinedTextFont,
    IfcFace,
    IfcFaceBound,
    IfcFaceOuterBound,
    IfcFailureConnectionCondition,
    IfcFanType,
    IfcFastener,
    IfcFastenerType,
    IfcFilterType,
    IfcFireSuppressionTerminalType,
    /// Abstract entity
    IfcFlowControllerType,
    /// Abstract entity
    IfcFlowFittingType,
    IfcFlowInstrumentType,
    IfcFlowMeterType,
    /// Abstract entity
    IfcFlowMovingDeviceType,
    /// Abstract entity
    IfcFlowSegmentType,
    /// Abstract entity
    IfcFlowStorageDeviceType,
    /// Abstract entity
    IfcFlowTerminalType,
    /// Abstract entity
    IfcFlowTreatmentDeviceType,
    IfcFooting,
    IfcFootingType,
    IfcFurniture,
    IfcFurnitureType,
    IfcGeographicCRS,
    IfcGeomodel,
    IfcGeoslice,
    /// Abstract entity
    IfcGeotechnicalAssembly,
    IfcGeotechnicalStratum,
    IfcGrid,
    IfcGridAxis,
    IfcGridPlacement,
    IfcGroup,
    IfcHeatExchangerType,
    IfcHumidifierType,
    IfcImageTexture,
    IfcImpactProtectionDevice,
    IfcImpactProtectionDeviceType,
    IfcIndexedPolygonalFace,
    IfcIndexedPolygonalFaceWithVoids,
    IfcIndexedPolygonalTextureMap,
    /// Abstract entity
    IfcIndexedTextureMap,
    IfcIndexedTriangleTextureMap,
    IfcInterceptorType,
    IfcInventory,
    IfcIrregularTimeSeries,
    IfcJunctionBoxType,
    IfcKerb,
    IfcKerbType,
    IfcLagTime,
    IfcLampType,
    IfcLibraryInformation,
    IfcLibraryReference,
    IfcLightDistributionData,
    IfcLightFixtureType,
    IfcLightIntensityDistribution,
    /// Abstract entity
    IfcLightSource,
    IfcLightSourceAmbient,
    IfcLightSourceDirectional,
    IfcLightSourceGoniometric,
    IfcLightSourcePositional,
    IfcLightSourceSpot,
    IfcLiquidTerminalType,
    IfcLocalPlacement,
    IfcLoop,
    IfcMapConversion,
    IfcMapConversionScaled,
    IfcMappedItem,
    IfcMeasureWithUnit,
    IfcMechanicalFastener,
    IfcMechanicalFastenerType,
    IfcMedicalDeviceType,
    IfcMember,
    IfcMemberType,
    IfcMetric,
    IfcMobileTelecommunicationsApplianceType,
    IfcMonetaryUnit,
    IfcMooringDevice,
    IfcMooringDeviceType,
    IfcMotorConnectionType,
    /// Abstract entity
    IfcNamedUnit,
    IfcOccupant,
    IfcOpenShell,
    IfcOrganization,
    IfcOrganizationRelationship,
    IfcOrientedEdge,
    IfcOutletType,
    IfcOwnerHistory,
    IfcPath,
    IfcPavement,
    IfcPavementType,
    IfcPcurve,
    IfcPerformanceHistory,
    IfcPermeableCoveringProperties,
    IfcPermit,
    IfcPerson,
    IfcPersonAndOrganization,
    IfcPile,
    IfcPileType,
    IfcPixelTexture,
    /// Abstract entity
    IfcPlacement,
    IfcPlanarBox,
    IfcPlanarExtent,
    IfcPlate,
    IfcPlateType,
    /// Abstract entity
    IfcPoint,
    IfcPointByDistanceExpression,
    IfcPolyLoop,
    /// Abstract entity
    IfcPort,
    IfcPostalAddress,
    /// Abstract entity
    IfcPreDefinedItem,
    /// Abstract entity
    IfcPreDefinedProperties,
    /// Abstract entity
    IfcPreDefinedTextFont,
    IfcProcedure,
    IfcProcedureType,
    /// Abstract entity
    IfcProcess,
    IfcProtectiveDeviceTrippingUnitType,
    IfcProtectiveDeviceType,
    IfcPumpType,
    IfcRail,
    IfcRailType,
    IfcRailing,
    IfcRailingType,
    IfcRamp,
    IfcRampFlight,
    IfcRampFlightType,
    IfcRampType,
    IfcRectangularPyramid,
    IfcRecurrencePattern,
    IfcReference,
    IfcReferent,
    IfcRegularTimeSeries,
    IfcReinforcedSoil,
    IfcReinforcementBarProperties,
    IfcReinforcementDefinitionProperties,
    IfcReinforcingBar,
    IfcReinforcingBarType,
    IfcReinforcingMesh,
    IfcReinforcingMeshType,
    IfcRightCircularCone,
    IfcRightCircularCylinder,
    IfcRigidOperation,
    IfcRoof,
    IfcRoofType,
    IfcSIUnit,
    IfcSanitaryTerminalType,
    /// Abstract entity
    IfcSchedulingTime,
    IfcSecondOrderPolynomialSpiral,
    IfcSectionProperties,
    IfcSectionReinforcementProperties,
    IfcSectionedSpine,
    /// Abstract entity
    IfcSegment,
    IfcSensorType,
    IfcSeventhOrderPolynomialSpiral,
    IfcShadingDevice,
    IfcShadingDeviceType,
    IfcSign,
    IfcSignType,
    IfcSignalType,
    IfcSineSpiral,
    IfcSlippageConnectionCondition,
    IfcSolarDeviceType,
    IfcSpatialZone,
    IfcSpatialZoneType,
    IfcSphere,
    /// Abstract entity
    IfcSpiral,
    IfcStackTerminalType,
    IfcStair,
    IfcStairFlight,
    IfcStairFlightType,
    IfcStairType,
    /// Abstract entity
    IfcStructuralAction,
    /// Abstract entity
    IfcStructuralActivity,
    IfcStructuralAnalysisModel,
    /// Abstract entity
    IfcStructuralConnection,
    /// Abstract entity
    IfcStructuralConnectionCondition,
    /// Abstract entity
    IfcStructuralItem,
    /// Abstract entity
    IfcStructuralLoad,
    IfcStructuralLoadCase,
    IfcStructuralLoadConfiguration,
    IfcStructuralLoadGroup,
    /// Abstract entity
    IfcStructuralLoadOrResult,
    IfcStructuralLoadPlanarForce,
    IfcStructuralLoadSingleDisplacement,
    IfcStructuralLoadSingleDisplacementDistortion,
    IfcStructuralLoadSingleForce,
    IfcStructuralLoadSingleForceWarping,
    /// Abstract entity
    IfcStructuralLoadStatic,
    IfcStructuralLoadTemperature,
    /// Abstract entity
    IfcStructuralMember,
    IfcStructuralPlanarAction,
    IfcStructuralPointAction,
    IfcStructuralPointConnection,
    IfcStructuralPointReaction,
    /// Abstract entity
    IfcStructuralReaction,
    IfcStructuralResultGroup,
    IfcSubedge,
    IfcSwitchingDeviceType,
    IfcSystem,
    IfcTable,
    IfcTableRow,
    IfcTankType,
    IfcTask,
    IfcTaskTime,
    IfcTaskTimeRecurring,
    IfcTaskType,
    IfcTelecomAddress,
    IfcTendon,
    IfcTendonAnchor,
    IfcTendonAnchorType,
    IfcTendonConduit,
    IfcTendonConduitType,
    IfcTendonType,
    /// Abstract entity
    IfcTessellatedItem,
    IfcTextLiteral,
    IfcTextLiteralWithExtent,
    /// Abstract entity
    IfcTextureCoordinate,
    IfcTextureCoordinateGenerator,
    IfcTextureCoordinateIndices,
    IfcTextureCoordinateIndicesWithVoids,
    IfcTextureMap,
    IfcTextureVertex,
    IfcTextureVertexList,
    IfcThirdOrderPolynomialSpiral,
    IfcTimePeriod,
    /// Abstract entity
    IfcTimeSeries,
    IfcTransformerType,
    /// Abstract entity
    IfcTransportationDevice,
    /// Abstract entity
    IfcTransportationDeviceType,
    IfcTriangulatedIrregularNetwork,
    IfcTubeBundleType,
    /// Abstract entity
    IfcTypeProcess,
    IfcUnitAssignment,
    IfcUnitaryEquipmentType,
    IfcValveType,
    IfcVector,
    IfcVehicle,
    IfcVehicleType,
    IfcVertex,
    IfcVertexLoop,
    IfcVertexPoint,
    IfcVibrationDamper,
    IfcVibrationDamperType,
    IfcVibrationIsolator,
    IfcVibrationIsolatorType,
    IfcVirtualGridIntersection,
    IfcVoidingFeature,
    IfcWasteTerminalType,
    IfcWellKnownText,
    IfcWorkCalendar,
    /// Abstract entity
    IfcWorkControl,
    IfcWorkPlan,
    IfcWorkSchedule,
    IfcWorkTime,
    IfcZone,

    /// Unknown/unrecognized IFC type (stores CRC32 hash)
    Unknown(u32),
}

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

    /// Parse from CRC32 type ID
    pub fn from_id(id: u32) -> Self {
        match id {
            3821786052 => Self::IfcActionRequest,
            2296667514 => Self::IfcActor,
            3630933823 => Self::IfcActorRole,
            4288193352 => Self::IfcActuator,
            2874132201 => Self::IfcActuatorType,
            618182010 => Self::IfcAddress,
            1635779807 => Self::IfcAdvancedBrep,
            2603310189 => Self::IfcAdvancedBrepWithVoids,
            3406155212 => Self::IfcAdvancedFace,
            1634111441 => Self::IfcAirTerminal,
            177149247 => Self::IfcAirTerminalBox,
            1411407467 => Self::IfcAirTerminalBoxType,
            3352864051 => Self::IfcAirTerminalType,
            2056796094 => Self::IfcAirToAirHeatRecovery,
            1871374353 => Self::IfcAirToAirHeatRecoveryType,
            3087945054 => Self::IfcAlarm,
            3001207471 => Self::IfcAlarmType,
            325726236 => Self::IfcAlignment,
            4266260250 => Self::IfcAlignmentCant,
            3752311538 => Self::IfcAlignmentCantSegment,
            1545765605 => Self::IfcAlignmentHorizontal,
            536804194 => Self::IfcAlignmentHorizontalSegment,
            2879124712 => Self::IfcAlignmentParameterSegment,
            317615605 => Self::IfcAlignmentSegment,
            1662888072 => Self::IfcAlignmentVertical,
            3633395639 => Self::IfcAlignmentVerticalSegment,
            1674181508 => Self::IfcAnnotation,
            669184980 => Self::IfcAnnotationFillArea,
            639542469 => Self::IfcApplication,
            411424972 => Self::IfcAppliedValue,
            130549933 => Self::IfcApproval,
            3869604511 => Self::IfcApprovalRelationship,
            3798115385 => Self::IfcArbitraryClosedProfileDef,
            1310608509 => Self::IfcArbitraryOpenProfileDef,
            2705031697 => Self::IfcArbitraryProfileDefWithVoids,
            3460190687 => Self::IfcAsset,
            3207858831 => Self::IfcAsymmetricIShapeProfileDef,
            277319702 => Self::IfcAudioVisualAppliance,
            1532957894 => Self::IfcAudioVisualApplianceType,
            4261334040 => Self::IfcAxis1Placement,
            3125803723 => Self::IfcAxis2Placement2D,
            2740243338 => Self::IfcAxis2Placement3D,
            3425423356 => Self::IfcAxis2PlacementLinear,
            1967976161 => Self::IfcBSplineCurve,
            2461110595 => Self::IfcBSplineCurveWithKnots,
            2887950389 => Self::IfcBSplineSurface,
            167062518 => Self::IfcBSplineSurfaceWithKnots,
            753842376 => Self::IfcBeam,
            819618141 => Self::IfcBeamType,
            4196446775 => Self::IfcBearing,
            3649138523 => Self::IfcBearingType,
            616511568 => Self::IfcBlobTexture,
            1334484129 => Self::IfcBlock,
            32344328 => Self::IfcBoiler,
            231477066 => Self::IfcBoilerType,
            3649129432 => Self::IfcBooleanClippingResult,
            2736907675 => Self::IfcBooleanResult,
            3314249567 => Self::IfcBorehole,
            4037036970 => Self::IfcBoundaryCondition,
            1136057603 => Self::IfcBoundaryCurve,
            1560379544 => Self::IfcBoundaryEdgeCondition,
            3367102660 => Self::IfcBoundaryFaceCondition,
            1387855156 => Self::IfcBoundaryNodeCondition,
            2069777674 => Self::IfcBoundaryNodeConditionWarping,
            1260505505 => Self::IfcBoundedCurve,
            4182860854 => Self::IfcBoundedSurface,
            2581212453 => Self::IfcBoundingBox,
            2713105998 => Self::IfcBoxedHalfSpace,
            644574406 => Self::IfcBridge,
            963979645 => Self::IfcBridgePart,
            4031249490 => Self::IfcBuilding,
            2979338954 => Self::IfcBuildingElementPart,
            39481116 => Self::IfcBuildingElementPartType,
            1095909175 => Self::IfcBuildingElementProxy,
            1909888760 => Self::IfcBuildingElementProxyType,
            3124254112 => Self::IfcBuildingStorey,
            1177604601 => Self::IfcBuildingSystem,
            1876633798 => Self::IfcBuiltElement,
            1626504194 => Self::IfcBuiltElementType,
            3862327254 => Self::IfcBuiltSystem,
            2938176219 => Self::IfcBurner,
            2188180465 => Self::IfcBurnerType,
            2898889636 => Self::IfcCShapeProfileDef,
            635142910 => Self::IfcCableCarrierFitting,
            395041908 => Self::IfcCableCarrierFittingType,
            3758799889 => Self::IfcCableCarrierSegment,
            3293546465 => Self::IfcCableCarrierSegmentType,
            1051757585 => Self::IfcCableFitting,
            2674252688 => Self::IfcCableFittingType,
            4217484030 => Self::IfcCableSegment,
            1285652485 => Self::IfcCableSegmentType,
            3999819293 => Self::IfcCaissonFoundation,
            3203706013 => Self::IfcCaissonFoundationType,
            1123145078 => Self::IfcCartesianPoint,
            574549367 => Self::IfcCartesianPointList,
            1675464909 => Self::IfcCartesianPointList2D,
            2059837836 => Self::IfcCartesianPointList3D,
            59481748 => Self::IfcCartesianTransformationOperator,
            3749851601 => Self::IfcCartesianTransformationOperator2D,
            3486308946 => Self::IfcCartesianTransformationOperator2DnonUniform,
            3331915920 => Self::IfcCartesianTransformationOperator3D,
            1416205885 => Self::IfcCartesianTransformationOperator3DnonUniform,
            3150382593 => Self::IfcCenterLineProfileDef,
            3902619387 => Self::IfcChiller,
            2951183804 => Self::IfcChillerType,
            3296154744 => Self::IfcChimney,
            2197970202 => Self::IfcChimneyType,
            2611217952 => Self::IfcCircle,
            2937912522 => Self::IfcCircleHollowProfileDef,
            1383045692 => Self::IfcCircleProfileDef,
            1677625105 => Self::IfcCivilElement,
            3893394355 => Self::IfcCivilElementType,
            747523909 => Self::IfcClassification,
            647927063 => Self::IfcClassificationReference,
            2205249479 => Self::IfcClosedShell,
            3497074424 => Self::IfcClothoid,
            639361253 => Self::IfcCoil,
            2301859152 => Self::IfcCoilType,
            776857604 => Self::IfcColourRgb,
            3285139300 => Self::IfcColourRgbList,
            3264961684 => Self::IfcColourSpecification,
            843113511 => Self::IfcColumn,
            300633059 => Self::IfcColumnType,
            3221913625 => Self::IfcCommunicationsAppliance,
            400855858 => Self::IfcCommunicationsApplianceType,
            2542286263 => Self::IfcComplexProperty,
            3875453745 => Self::IfcComplexPropertyTemplate,
            3732776249 => Self::IfcCompositeCurve,
            15328376 => Self::IfcCompositeCurveOnSurface,
            2485617015 => Self::IfcCompositeCurveSegment,
            1485152156 => Self::IfcCompositeProfileDef,
            3571504051 => Self::IfcCompressor,
            3850581409 => Self::IfcCompressorType,
            2272882330 => Self::IfcCondenser,
            2816379211 => Self::IfcCondenserType,
            2510884976 => Self::IfcConic,
            370225590 => Self::IfcConnectedFaceSet,
            1981873012 => Self::IfcConnectionCurveGeometry,
            2859738748 => Self::IfcConnectionGeometry,
            45288368 => Self::IfcConnectionPointEccentricity,
            2614616156 => Self::IfcConnectionPointGeometry,
            2732653382 => Self::IfcConnectionSurfaceGeometry,
            775493141 => Self::IfcConnectionVolumeGeometry,
            1959218052 => Self::IfcConstraint,
            3898045240 => Self::IfcConstructionEquipmentResource,
            2185764099 => Self::IfcConstructionEquipmentResourceType,
            1060000209 => Self::IfcConstructionMaterialResource,
            4105962743 => Self::IfcConstructionMaterialResourceType,
            488727124 => Self::IfcConstructionProductResource,
            1525564444 => Self::IfcConstructionProductResourceType,
            2559216714 => Self::IfcConstructionResource,
            2574617495 => Self::IfcConstructionResourceType,
            3419103109 => Self::IfcContext,
            3050246964 => Self::IfcContextDependentUnit,
            3293443760 => Self::IfcControl,
            25142252 => Self::IfcController,
            578613899 => Self::IfcControllerType,
            2889183280 => Self::IfcConversionBasedUnit,
            2713554722 => Self::IfcConversionBasedUnitWithOffset,
            3460952963 => Self::IfcConveyorSegment,
            2940368186 => Self::IfcConveyorSegmentType,
            4136498852 => Self::IfcCooledBeam,
            335055490 => Self::IfcCooledBeamType,
            3640358203 => Self::IfcCoolingTower,
            2954562838 => Self::IfcCoolingTowerType,
            1785450214 => Self::IfcCoordinateOperation,
            1466758467 => Self::IfcCoordinateReferenceSystem,
            2000195564 => Self::IfcCosineSpiral,
            3895139033 => Self::IfcCostItem,
            1419761937 => Self::IfcCostSchedule,
            602808272 => Self::IfcCostValue,
            1502416096 => Self::IfcCourse,
            4189326743 => Self::IfcCourseType,
            1973544240 => Self::IfcCovering,
            1916426348 => Self::IfcCoveringType,
            3295246426 => Self::IfcCrewResource,
            1815067380 => Self::IfcCrewResourceType,
            2506170314 => Self::IfcCsgPrimitive3D,
            2147822146 => Self::IfcCsgSolid,
            539742890 => Self::IfcCurrencyRelationship,
            3495092785 => Self::IfcCurtainWall,
            1457835157 => Self::IfcCurtainWallType,
            2601014836 => Self::IfcCurve,
            2827736869 => Self::IfcCurveBoundedPlane,
            2629017746 => Self::IfcCurveBoundedSurface,
            4212018352 => Self::IfcCurveSegment,
            3800577675 => Self::IfcCurveStyle,
            1105321065 => Self::IfcCurveStyleFont,
            2367409068 => Self::IfcCurveStyleFontAndScaling,
            3510044353 => Self::IfcCurveStyleFontPattern,
            1213902940 => Self::IfcCylindricalSurface,
            4074379575 => Self::IfcDamper,
            3961806047 => Self::IfcDamperType,
            3426335179 => Self::IfcDeepFoundation,
            1306400036 => Self::IfcDeepFoundationType,
            3632507154 => Self::IfcDerivedProfileDef,
            1765591967 => Self::IfcDerivedUnit,
            1045800335 => Self::IfcDerivedUnitElement,
            2949456006 => Self::IfcDimensionalExponents,
            32440307 => Self::IfcDirection,
            593015953 => Self::IfcDirectrixCurveSweptAreaSolid,
            4234616927 => Self::IfcDirectrixDerivedReferenceSweptAreaSolid,
            1335981549 => Self::IfcDiscreteAccessory,
            2635815018 => Self::IfcDiscreteAccessoryType,
            3693000487 => Self::IfcDistributionBoard,
            479945903 => Self::IfcDistributionBoardType,
            1052013943 => Self::IfcDistributionChamberElement,
            1599208980 => Self::IfcDistributionChamberElementType,
            562808652 => Self::IfcDistributionCircuit,
            1062813311 => Self::IfcDistributionControlElement,
            2063403501 => Self::IfcDistributionControlElementType,
            1945004755 => Self::IfcDistributionElement,
            3256556792 => Self::IfcDistributionElementType,
            3040386961 => Self::IfcDistributionFlowElement,
            3849074793 => Self::IfcDistributionFlowElementType,
            3041715199 => Self::IfcDistributionPort,
            3205830791 => Self::IfcDistributionSystem,
            1154170062 => Self::IfcDocumentInformation,
            770865208 => Self::IfcDocumentInformationRelationship,
            3732053477 => Self::IfcDocumentReference,
            395920057 => Self::IfcDoor,
            2963535650 => Self::IfcDoorLiningProperties,
            1714330368 => Self::IfcDoorPanelProperties,
            2323601079 => Self::IfcDoorType,
            445594917 => Self::IfcDraughtingPreDefinedColour,
            4006246654 => Self::IfcDraughtingPreDefinedCurveFont,
            342316401 => Self::IfcDuctFitting,
            869906466 => Self::IfcDuctFittingType,
            3518393246 => Self::IfcDuctSegment,
            3760055223 => Self::IfcDuctSegmentType,
            1360408905 => Self::IfcDuctSilencer,
            2030761528 => Self::IfcDuctSilencerType,
            3071239417 => Self::IfcEarthworksCut,
            1077100507 => Self::IfcEarthworksElement,
            3376911765 => Self::IfcEarthworksFill,
            3900360178 => Self::IfcEdge,
            476780140 => Self::IfcEdgeCurve,
            1472233963 => Self::IfcEdgeLoop,
            1904799276 => Self::IfcElectricAppliance,
            663422040 => Self::IfcElectricApplianceType,
            862014818 => Self::IfcElectricDistributionBoard,
            2417008758 => Self::IfcElectricDistributionBoardType,
            3310460725 => Self::IfcElectricFlowStorageDevice,
            3277789161 => Self::IfcElectricFlowStorageDeviceType,
            24726584 => Self::IfcElectricFlowTreatmentDevice,
            2142170206 => Self::IfcElectricFlowTreatmentDeviceType,
            264262732 => Self::IfcElectricGenerator,
            1534661035 => Self::IfcElectricGeneratorType,
            402227799 => Self::IfcElectricMotor,
            1217240411 => Self::IfcElectricMotorType,
            1003880860 => Self::IfcElectricTimeControl,
            712377611 => Self::IfcElectricTimeControlType,
            1758889154 => Self::IfcElement,
            4123344466 => Self::IfcElementAssembly,
            2397081782 => Self::IfcElementAssemblyType,
            1623761950 => Self::IfcElementComponent,
            2590856083 => Self::IfcElementComponentType,
            1883228015 => Self::IfcElementQuantity,
            339256511 => Self::IfcElementType,
            2777663545 => Self::IfcElementarySurface,
            1704287377 => Self::IfcEllipse,
            2835456948 => Self::IfcEllipseProfileDef,
            1658829314 => Self::IfcEnergyConversionDevice,
            2107101300 => Self::IfcEnergyConversionDeviceType,
            2814081492 => Self::IfcEngine,
            132023988 => Self::IfcEngineType,
            3747195512 => Self::IfcEvaporativeCooler,
            3174744832 => Self::IfcEvaporativeCoolerType,
            484807127 => Self::IfcEvaporator,
            3390157468 => Self::IfcEvaporatorType,
            4148101412 => Self::IfcEvent,
            211053100 => Self::IfcEventTime,
            4024345920 => Self::IfcEventType,
            297599258 => Self::IfcExtendedProperties,
            4294318154 => Self::IfcExternalInformation,
            3200245327 => Self::IfcExternalReference,
            1437805879 => Self::IfcExternalReferenceRelationship,
            1209101575 => Self::IfcExternalSpatialElement,
            2853485674 => Self::IfcExternalSpatialStructureElement,
            2242383968 => Self::IfcExternallyDefinedHatchStyle,
            1040185647 => Self::IfcExternallyDefinedSurfaceStyle,
            3548104201 => Self::IfcExternallyDefinedTextFont,
            477187591 => Self::IfcExtrudedAreaSolid,
            2804161546 => Self::IfcExtrudedAreaSolidTapered,
            2556980723 => Self::IfcFace,
            2047409740 => Self::IfcFaceBasedSurfaceModel,
            1809719519 => Self::IfcFaceBound,
            803316827 => Self::IfcFaceOuterBound,
            3008276851 => Self::IfcFaceSurface,
            807026263 => Self::IfcFacetedBrep,
            3737207727 => Self::IfcFacetedBrepWithVoids,
            24185140 => Self::IfcFacility,
            1310830890 => Self::IfcFacilityPart,
            4228831410 => Self::IfcFacilityPartCommon,
            4219587988 => Self::IfcFailureConnectionCondition,
            3415622556 => Self::IfcFan,
            346874300 => Self::IfcFanType,
            647756555 => Self::IfcFastener,
            2489546625 => Self::IfcFastenerType,
            2827207264 => Self::IfcFeatureElement,
            2143335405 => Self::IfcFeatureElementAddition,
            1287392070 => Self::IfcFeatureElementSubtraction,
            738692330 => Self::IfcFillAreaStyle,
            374418227 => Self::IfcFillAreaStyleHatching,
            315944413 => Self::IfcFillAreaStyleTiles,
            819412036 => Self::IfcFilter,
            1810631287 => Self::IfcFilterType,
            1426591983 => Self::IfcFireSuppressionTerminal,
            4222183408 => Self::IfcFireSuppressionTerminalType,
            2652556860 => Self::IfcFixedReferenceSweptAreaSolid,
            2058353004 => Self::IfcFlowController,
            3907093117 => Self::IfcFlowControllerType,
            4278956645 => Self::IfcFlowFitting,
            3198132628 => Self::IfcFlowFittingType,
            182646315 => Self::IfcFlowInstrument,
            4037862832 => Self::IfcFlowInstrumentType,
            2188021234 => Self::IfcFlowMeter,
            3815607619 => Self::IfcFlowMeterType,
            3132237377 => Self::IfcFlowMovingDevice,
            1482959167 => Self::IfcFlowMovingDeviceType,
            987401354 => Self::IfcFlowSegment,
            1834744321 => Self::IfcFlowSegmentType,
            707683696 => Self::IfcFlowStorageDevice,
            1339347760 => Self::IfcFlowStorageDeviceType,
            2223149337 => Self::IfcFlowTerminal,
            2297155007 => Self::IfcFlowTerminalType,
            3508470533 => Self::IfcFlowTreatmentDevice,
            3009222698 => Self::IfcFlowTreatmentDeviceType,
            900683007 => Self::IfcFooting,
            1893162501 => Self::IfcFootingType,
            263784265 => Self::IfcFurnishingElement,
            4238390223 => Self::IfcFurnishingElementType,
            1509553395 => Self::IfcFurniture,
            1268542332 => Self::IfcFurnitureType,
            917726184 => Self::IfcGeographicCRS,
            3493046030 => Self::IfcGeographicElement,
            4095422895 => Self::IfcGeographicElementType,
            987898635 => Self::IfcGeometricCurveSet,
            3448662350 => Self::IfcGeometricRepresentationContext,
            2453401579 => Self::IfcGeometricRepresentationItem,
            4142052618 => Self::IfcGeometricRepresentationSubContext,
            3590301190 => Self::IfcGeometricSet,
            2680139844 => Self::IfcGeomodel,
            1971632696 => Self::IfcGeoslice,
            2713699986 => Self::IfcGeotechnicalAssembly,
            4230923436 => Self::IfcGeotechnicalElement,
            1594536857 => Self::IfcGeotechnicalStratum,
            2898700619 => Self::IfcGradientCurve,
            3009204131 => Self::IfcGrid,
            852622518 => Self::IfcGridAxis,
            178086475 => Self::IfcGridPlacement,
            2706460486 => Self::IfcGroup,
            812098782 => Self::IfcHalfSpaceSolid,
            3319311131 => Self::IfcHeatExchanger,
            1251058090 => Self::IfcHeatExchangerType,
            2068733104 => Self::IfcHumidifier,
            1806887404 => Self::IfcHumidifierType,
            1484403080 => Self::IfcIShapeProfileDef,
            3905492369 => Self::IfcImageTexture,
            2568555532 => Self::IfcImpactProtectionDevice,
            3948183225 => Self::IfcImpactProtectionDeviceType,
            3570813810 => Self::IfcIndexedColourMap,
            2571569899 => Self::IfcIndexedPolyCurve,
            178912537 => Self::IfcIndexedPolygonalFace,
            2294589976 => Self::IfcIndexedPolygonalFaceWithVoids,
            3465909080 => Self::IfcIndexedPolygonalTextureMap,
            1437953363 => Self::IfcIndexedTextureMap,
            2133299955 => Self::IfcIndexedTriangleTextureMap,
            4175244083 => Self::IfcInterceptor,
            3946677679 => Self::IfcInterceptorType,
            3113134337 => Self::IfcIntersectionCurve,
            2391368822 => Self::IfcInventory,
            3741457305 => Self::IfcIrregularTimeSeries,
            3020489413 => Self::IfcIrregularTimeSeriesValue,
            2176052936 => Self::IfcJunctionBox,
            4288270099 => Self::IfcJunctionBoxType,
            2696325953 => Self::IfcKerb,
            679976338 => Self::IfcKerbType,
            572779678 => Self::IfcLShapeProfileDef,
            3827777499 => Self::IfcLaborResource,
            428585644 => Self::IfcLaborResourceType,
            1585845231 => Self::IfcLagTime,
            76236018 => Self::IfcLamp,
            1051575348 => Self::IfcLampType,
            2655187982 => Self::IfcLibraryInformation,
            3452421091 => Self::IfcLibraryReference,
            4162380809 => Self::IfcLightDistributionData,
            629592764 => Self::IfcLightFixture,
            1161773419 => Self::IfcLightFixtureType,
            1566485204 => Self::IfcLightIntensityDistribution,
            1402838566 => Self::IfcLightSource,
            125510826 => Self::IfcLightSourceAmbient,
            2604431987 => Self::IfcLightSourceDirectional,
            4266656042 => Self::IfcLightSourceGoniometric,
            1520743889 => Self::IfcLightSourcePositional,
            3422422726 => Self::IfcLightSourceSpot,
            1281925730 => Self::IfcLine,
            2176059722 => Self::IfcLinearElement,
            388784114 => Self::IfcLinearPlacement,
            1154579445 => Self::IfcLinearPositioningElement,
            1638804497 => Self::IfcLiquidTerminal,
            1770583370 => Self::IfcLiquidTerminalType,
            2624227202 => Self::IfcLocalPlacement,
            1008929658 => Self::IfcLoop,
            1425443689 => Self::IfcManifoldSolidBrep,
            3057273783 => Self::IfcMapConversion,
            4105526436 => Self::IfcMapConversionScaled,
            2347385850 => Self::IfcMappedItem,
            525669439 => Self::IfcMarineFacility,
            976884017 => Self::IfcMarinePart,
            1838606355 => Self::IfcMaterial,
            1847130766 => Self::IfcMaterialClassificationRelationship,
            3708119000 => Self::IfcMaterialConstituent,
            2852063980 => Self::IfcMaterialConstituentSet,
            760658860 => Self::IfcMaterialDefinition,
            2022407955 => Self::IfcMaterialDefinitionRepresentation,
            248100487 => Self::IfcMaterialLayer,
            3303938423 => Self::IfcMaterialLayerSet,
            1303795690 => Self::IfcMaterialLayerSetUsage,
            1847252529 => Self::IfcMaterialLayerWithOffsets,
            2199411900 => Self::IfcMaterialList,
            2235152071 => Self::IfcMaterialProfile,
            164193824 => Self::IfcMaterialProfileSet,
            3079605661 => Self::IfcMaterialProfileSetUsage,
            3404854881 => Self::IfcMaterialProfileSetUsageTapering,
            552965576 => Self::IfcMaterialProfileWithOffsets,
            3265635763 => Self::IfcMaterialProperties,
            853536259 => Self::IfcMaterialRelationship,
            1507914824 => Self::IfcMaterialUsageDefinition,
            2597039031 => Self::IfcMeasureWithUnit,
            377706215 => Self::IfcMechanicalFastener,
            2108223431 => Self::IfcMechanicalFastenerType,
            1437502449 => Self::IfcMedicalDevice,
            1114901282 => Self::IfcMedicalDeviceType,
            1073191201 => Self::IfcMember,
            3181161470 => Self::IfcMemberType,
            3368373690 => Self::IfcMetric,
            2998442950 => Self::IfcMirroredProfileDef,
            2078563270 => Self::IfcMobileTelecommunicationsAppliance,
            1950438474 => Self::IfcMobileTelecommunicationsApplianceType,
            2706619895 => Self::IfcMonetaryUnit,
            234836483 => Self::IfcMooringDevice,
            710110818 => Self::IfcMooringDeviceType,
            2474470126 => Self::IfcMotorConnection,
            977012517 => Self::IfcMotorConnectionType,
            1918398963 => Self::IfcNamedUnit,
            2182337498 => Self::IfcNavigationElement,
            506776471 => Self::IfcNavigationElementType,
            3888040117 => Self::IfcObject,
            219451334 => Self::IfcObjectDefinition,
            3701648758 => Self::IfcObjectPlacement,
            2251480897 => Self::IfcObjective,
            4143007308 => Self::IfcOccupant,
            590820931 => Self::IfcOffsetCurve,
            3388369263 => Self::IfcOffsetCurve2D,
            3505215534 => Self::IfcOffsetCurve3D,
            2485787929 => Self::IfcOffsetCurveByDistances,
            182550632 => Self::IfcOpenCrossProfileDef,
            2665983363 => Self::IfcOpenShell,
            3588315303 => Self::IfcOpeningElement,
            4251960020 => Self::IfcOrganization,
            1411181986 => Self::IfcOrganizationRelationship,
            1029017970 => Self::IfcOrientedEdge,
            144952367 => Self::IfcOuterBoundaryCurve,
            3694346114 => Self::IfcOutlet,
            2837617999 => Self::IfcOutletType,
            1207048766 => Self::IfcOwnerHistory,
            2529465313 => Self::IfcParameterizedProfileDef,
            2519244187 => Self::IfcPath,
            1383356374 => Self::IfcPavement,
            514975943 => Self::IfcPavementType,
            1682466193 => Self::IfcPcurve,
            2382730787 => Self::IfcPerformanceHistory,
            3566463478 => Self::IfcPermeableCoveringProperties,
            3327091369 => Self::IfcPermit,
            2077209135 => Self::IfcPerson,
            101040310 => Self::IfcPersonAndOrganization,
            3021840470 => Self::IfcPhysicalComplexQuantity,
            2483315170 => Self::IfcPhysicalQuantity,
            2226359599 => Self::IfcPhysicalSimpleQuantity,
            1687234759 => Self::IfcPile,
            1158309216 => Self::IfcPileType,
            310824031 => Self::IfcPipeFitting,
            804291784 => Self::IfcPipeFittingType,
            3612865200 => Self::IfcPipeSegment,
            4231323485 => Self::IfcPipeSegmentType,
            597895409 => Self::IfcPixelTexture,
            2004835150 => Self::IfcPlacement,
            603570806 => Self::IfcPlanarBox,
            1663979128 => Self::IfcPlanarExtent,
            220341763 => Self::IfcPlane,
            3171933400 => Self::IfcPlate,
            4017108033 => Self::IfcPlateType,
            2067069095 => Self::IfcPoint,
            2165702409 => Self::IfcPointByDistanceExpression,
            4022376103 => Self::IfcPointOnCurve,
            1423911732 => Self::IfcPointOnSurface,
            2924175390 => Self::IfcPolyLoop,
            2775532180 => Self::IfcPolygonalBoundedHalfSpace,
            2839578677 => Self::IfcPolygonalFaceSet,
            3724593414 => Self::IfcPolyline,
            3381221214 => Self::IfcPolynomialCurve,
            3740093272 => Self::IfcPort,
            1946335990 => Self::IfcPositioningElement,
            3355820592 => Self::IfcPostalAddress,
            759155922 => Self::IfcPreDefinedColour,
            2559016684 => Self::IfcPreDefinedCurveFont,
            3727388367 => Self::IfcPreDefinedItem,
            3778827333 => Self::IfcPreDefinedProperties,
            3967405729 => Self::IfcPreDefinedPropertySet,
            1775413392 => Self::IfcPreDefinedTextFont,
            677532197 => Self::IfcPresentationItem,
            2022622350 => Self::IfcPresentationLayerAssignment,
            1304840413 => Self::IfcPresentationLayerWithStyle,
            3119450353 => Self::IfcPresentationStyle,
            2744685151 => Self::IfcProcedure,
            569719735 => Self::IfcProcedureType,
            2945172077 => Self::IfcProcess,
            4208778838 => Self::IfcProduct,
            673634403 => Self::IfcProductDefinitionShape,
            2095639259 => Self::IfcProductRepresentation,
            3958567839 => Self::IfcProfileDef,
            2802850158 => Self::IfcProfileProperties,
            103090709 => Self::IfcProject,
            653396225 => Self::IfcProjectLibrary,
            2904328755 => Self::IfcProjectOrder,
            3843373140 => Self::IfcProjectedCRS,
            3651124850 => Self::IfcProjectionElement,
            2598011224 => Self::IfcProperty,
            986844984 => Self::IfcPropertyAbstraction,
            871118103 => Self::IfcPropertyBoundedValue,
            1680319473 => Self::IfcPropertyDefinition,
            148025276 => Self::IfcPropertyDependencyRelationship,
            4166981789 => Self::IfcPropertyEnumeratedValue,
            3710013099 => Self::IfcPropertyEnumeration,
            2752243245 => Self::IfcPropertyListValue,
            941946838 => Self::IfcPropertyReferenceValue,
            1451395588 => Self::IfcPropertySet,
            3357820518 => Self::IfcPropertySetDefinition,
            492091185 => Self::IfcPropertySetTemplate,
            3650150729 => Self::IfcPropertySingleValue,
            110355661 => Self::IfcPropertyTableValue,
            3521284610 => Self::IfcPropertyTemplate,
            1482703590 => Self::IfcPropertyTemplateDefinition,
            738039164 => Self::IfcProtectiveDevice,
            2295281155 => Self::IfcProtectiveDeviceTrippingUnit,
            655969474 => Self::IfcProtectiveDeviceTrippingUnitType,
            1842657554 => Self::IfcProtectiveDeviceType,
            90941305 => Self::IfcPump,
            2250791053 => Self::IfcPumpType,
            2044713172 => Self::IfcQuantityArea,
            2093928680 => Self::IfcQuantityCount,
            931644368 => Self::IfcQuantityLength,
            2691318326 => Self::IfcQuantityNumber,
            2090586900 => Self::IfcQuantitySet,
            3252649465 => Self::IfcQuantityTime,
            2405470396 => Self::IfcQuantityVolume,
            825690147 => Self::IfcQuantityWeight,
            3290496277 => Self::IfcRail,
            1763565496 => Self::IfcRailType,
            2262370178 => Self::IfcRailing,
            2893384427 => Self::IfcRailingType,
            3992365140 => Self::IfcRailway,
            1891881377 => Self::IfcRailwayPart,
            3024970846 => Self::IfcRamp,
            3283111854 => Self::IfcRampFlight,
            2324767716 => Self::IfcRampFlightType,
            1469900589 => Self::IfcRampType,
            1232101972 => Self::IfcRationalBSplineCurveWithKnots,
            683857671 => Self::IfcRationalBSplineSurfaceWithKnots,
            2770003689 => Self::IfcRectangleHollowProfileDef,
            3615266464 => Self::IfcRectangleProfileDef,
            2798486643 => Self::IfcRectangularPyramid,
            3454111270 => Self::IfcRectangularTrimmedSurface,
            3915482550 => Self::IfcRecurrencePattern,
            2433181523 => Self::IfcReference,
            4021432810 => Self::IfcReferent,
            3413951693 => Self::IfcRegularTimeSeries,
            3798194928 => Self::IfcReinforcedSoil,
            1580146022 => Self::IfcReinforcementBarProperties,
            3765753017 => Self::IfcReinforcementDefinitionProperties,
            979691226 => Self::IfcReinforcingBar,
            2572171363 => Self::IfcReinforcingBarType,
            3027567501 => Self::IfcReinforcingElement,
            964333572 => Self::IfcReinforcingElementType,
            2320036040 => Self::IfcReinforcingMesh,
            2310774935 => Self::IfcReinforcingMeshType,
            3818125796 => Self::IfcRelAdheresToElement,
            160246688 => Self::IfcRelAggregates,
            3939117080 => Self::IfcRelAssigns,
            1683148259 => Self::IfcRelAssignsToActor,
            2495723537 => Self::IfcRelAssignsToControl,
            1307041759 => Self::IfcRelAssignsToGroup,
            1027710054 => Self::IfcRelAssignsToGroupByFactor,
            4278684876 => Self::IfcRelAssignsToProcess,
            2857406711 => Self::IfcRelAssignsToProduct,
            205026976 => Self::IfcRelAssignsToResource,
            1865459582 => Self::IfcRelAssociates,
            4095574036 => Self::IfcRelAssociatesApproval,
            919958153 => Self::IfcRelAssociatesClassification,
            2728634034 => Self::IfcRelAssociatesConstraint,
            982818633 => Self::IfcRelAssociatesDocument,
            3840914261 => Self::IfcRelAssociatesLibrary,
            2655215786 => Self::IfcRelAssociatesMaterial,
            1033248425 => Self::IfcRelAssociatesProfileDef,
            826625072 => Self::IfcRelConnects,
            1204542856 => Self::IfcRelConnectsElements,
            3945020480 => Self::IfcRelConnectsPathElements,
            4201705270 => Self::IfcRelConnectsPortToElement,
            3190031847 => Self::IfcRelConnectsPorts,
            2127690289 => Self::IfcRelConnectsStructuralActivity,
            1638771189 => Self::IfcRelConnectsStructuralMember,
            504942748 => Self::IfcRelConnectsWithEccentricity,
            3678494232 => Self::IfcRelConnectsWithRealizingElements,
            3242617779 => Self::IfcRelContainedInSpatialStructure,
            886880790 => Self::IfcRelCoversBldgElements,
            2802773753 => Self::IfcRelCoversSpaces,
            2565941209 => Self::IfcRelDeclares,
            2551354335 => Self::IfcRelDecomposes,
            693640335 => Self::IfcRelDefines,
            1462361463 => Self::IfcRelDefinesByObject,
            4186316022 => Self::IfcRelDefinesByProperties,
            307848117 => Self::IfcRelDefinesByTemplate,
            781010003 => Self::IfcRelDefinesByType,
            3940055652 => Self::IfcRelFillsElement,
            279856033 => Self::IfcRelFlowControlElements,
            427948657 => Self::IfcRelInterferesElements,
            3268803585 => Self::IfcRelNests,
            1441486842 => Self::IfcRelPositions,
            750771296 => Self::IfcRelProjectsElement,
            1245217292 => Self::IfcRelReferencedInSpatialStructure,
            4122056220 => Self::IfcRelSequence,
            366585022 => Self::IfcRelServicesBuildings,
            3451746338 => Self::IfcRelSpaceBoundary,
            3523091289 => Self::IfcRelSpaceBoundary1stLevel,
            1521410863 => Self::IfcRelSpaceBoundary2ndLevel,
            1401173127 => Self::IfcRelVoidsElement,
            478536968 => Self::IfcRelationship,
            816062949 => Self::IfcReparametrisedCompositeCurveSegment,
            1076942058 => Self::IfcRepresentation,
            3377609919 => Self::IfcRepresentationContext,
            3008791417 => Self::IfcRepresentationItem,
            1660063152 => Self::IfcRepresentationMap,
            2914609552 => Self::IfcResource,
            2943643501 => Self::IfcResourceApprovalRelationship,
            1608871552 => Self::IfcResourceConstraintRelationship,
            2439245199 => Self::IfcResourceLevelRelationship,
            1042787934 => Self::IfcResourceTime,
            1856042241 => Self::IfcRevolvedAreaSolid,
            3243963512 => Self::IfcRevolvedAreaSolidTapered,
            4158566097 => Self::IfcRightCircularCone,
            3626867408 => Self::IfcRightCircularCylinder,
            1794013214 => Self::IfcRigidOperation,
            146592293 => Self::IfcRoad,
            550521510 => Self::IfcRoadPart,
            2016517767 => Self::IfcRoof,
            2781568857 => Self::IfcRoofType,
            2341007311 => Self::IfcRoot,
            2778083089 => Self::IfcRoundedRectangleProfileDef,
            448429030 => Self::IfcSIUnit,
            3053780830 => Self::IfcSanitaryTerminal,
            1768891740 => Self::IfcSanitaryTerminalType,
            1054537805 => Self::IfcSchedulingTime,
            2157484638 => Self::IfcSeamCurve,
            3649235739 => Self::IfcSecondOrderPolynomialSpiral,
            2042790032 => Self::IfcSectionProperties,
            4165799628 => Self::IfcSectionReinforcementProperties,
            1862484736 => Self::IfcSectionedSolid,
            1290935644 => Self::IfcSectionedSolidHorizontal,
            1509187699 => Self::IfcSectionedSpine,
            1356537516 => Self::IfcSectionedSurface,
            823603102 => Self::IfcSegment,
            544395925 => Self::IfcSegmentedReferenceCurve,
            4086658281 => Self::IfcSensor,
            1783015770 => Self::IfcSensorType,
            1027922057 => Self::IfcSeventhOrderPolynomialSpiral,
            1329646415 => Self::IfcShadingDevice,
            4074543187 => Self::IfcShadingDeviceType,
            867548509 => Self::IfcShapeAspect,
            3982875396 => Self::IfcShapeModel,
            4240577450 => Self::IfcShapeRepresentation,
            4124623270 => Self::IfcShellBasedSurfaceModel,
            33720170 => Self::IfcSign,
            3599934289 => Self::IfcSignType,
            991950508 => Self::IfcSignal,
            1894708472 => Self::IfcSignalType,
            3692461612 => Self::IfcSimpleProperty,
            3663146110 => Self::IfcSimplePropertyTemplate,
            42703149 => Self::IfcSineSpiral,
            4097777520 => Self::IfcSite,
            1529196076 => Self::IfcSlab,
            2533589738 => Self::IfcSlabType,
            2609359061 => Self::IfcSlippageConnectionCondition,
            3420628829 => Self::IfcSolarDevice,
            1072016465 => Self::IfcSolarDeviceType,
            723233188 => Self::IfcSolidModel,
            3856911033 => Self::IfcSpace,
            1999602285 => Self::IfcSpaceHeater,
            1305183839 => Self::IfcSpaceHeaterType,
            3812236995 => Self::IfcSpaceType,
            1412071761 => Self::IfcSpatialElement,
            710998568 => Self::IfcSpatialElementType,
            2706606064 => Self::IfcSpatialStructureElement,
            3893378262 => Self::IfcSpatialStructureElementType,
            463610769 => Self::IfcSpatialZone,
            2481509218 => Self::IfcSpatialZoneType,
            451544542 => Self::IfcSphere,
            4015995234 => Self::IfcSphericalSurface,
            2735484536 => Self::IfcSpiral,
            1404847402 => Self::IfcStackTerminal,
            3112655638 => Self::IfcStackTerminalType,
            331165859 => Self::IfcStair,
            4252922144 => Self::IfcStairFlight,
            1039846685 => Self::IfcStairFlightType,
            338393293 => Self::IfcStairType,
            682877961 => Self::IfcStructuralAction,
            3544373492 => Self::IfcStructuralActivity,
            2515109513 => Self::IfcStructuralAnalysisModel,
            1179482911 => Self::IfcStructuralConnection,
            2273995522 => Self::IfcStructuralConnectionCondition,
            1004757350 => Self::IfcStructuralCurveAction,
            4243806635 => Self::IfcStructuralCurveConnection,
            214636428 => Self::IfcStructuralCurveMember,
            2445595289 => Self::IfcStructuralCurveMemberVarying,
            2757150158 => Self::IfcStructuralCurveReaction,
            3136571912 => Self::IfcStructuralItem,
            1807405624 => Self::IfcStructuralLinearAction,
            2162789131 => Self::IfcStructuralLoad,
            385403989 => Self::IfcStructuralLoadCase,
            3478079324 => Self::IfcStructuralLoadConfiguration,
            1252848954 => Self::IfcStructuralLoadGroup,
            1595516126 => Self::IfcStructuralLoadLinearForce,
            609421318 => Self::IfcStructuralLoadOrResult,
            2668620305 => Self::IfcStructuralLoadPlanarForce,
            2473145415 => Self::IfcStructuralLoadSingleDisplacement,
            1973038258 => Self::IfcStructuralLoadSingleDisplacementDistortion,
            1597423693 => Self::IfcStructuralLoadSingleForce,
            1190533807 => Self::IfcStructuralLoadSingleForceWarping,
            2525727697 => Self::IfcStructuralLoadStatic,
            3408363356 => Self::IfcStructuralLoadTemperature,
            530289379 => Self::IfcStructuralMember,
            1621171031 => Self::IfcStructuralPlanarAction,
            2082059205 => Self::IfcStructuralPointAction,
            734778138 => Self::IfcStructuralPointConnection,
            1235345126 => Self::IfcStructuralPointReaction,
            3689010777 => Self::IfcStructuralReaction,
            2986769608 => Self::IfcStructuralResultGroup,
            3657597509 => Self::IfcStructuralSurfaceAction,
            1975003073 => Self::IfcStructuralSurfaceConnection,
            3979015343 => Self::IfcStructuralSurfaceMember,
            2218152070 => Self::IfcStructuralSurfaceMemberVarying,
            603775116 => Self::IfcStructuralSurfaceReaction,
            2830218821 => Self::IfcStyleModel,
            3958052878 => Self::IfcStyledItem,
            3049322572 => Self::IfcStyledRepresentation,
            148013059 => Self::IfcSubContractResource,
            4095615324 => Self::IfcSubContractResourceType,
            2233826070 => Self::IfcSubedge,
            2513912981 => Self::IfcSurface,
            699246055 => Self::IfcSurfaceCurve,
            2028607225 => Self::IfcSurfaceCurveSweptAreaSolid,
            3101698114 => Self::IfcSurfaceFeature,
            2809605785 => Self::IfcSurfaceOfLinearExtrusion,
            4124788165 => Self::IfcSurfaceOfRevolution,
            2934153892 => Self::IfcSurfaceReinforcementArea,
            1300840506 => Self::IfcSurfaceStyle,
            3303107099 => Self::IfcSurfaceStyleLighting,
            1607154358 => Self::IfcSurfaceStyleRefraction,
            1878645084 => Self::IfcSurfaceStyleRendering,
            846575682 => Self::IfcSurfaceStyleShading,
            1351298697 => Self::IfcSurfaceStyleWithTextures,
            626085974 => Self::IfcSurfaceTexture,
            2247615214 => Self::IfcSweptAreaSolid,
            1260650574 => Self::IfcSweptDiskSolid,
            1096409881 => Self::IfcSweptDiskSolidPolygonal,
            230924584 => Self::IfcSweptSurface,
            1162798199 => Self::IfcSwitchingDevice,
            2315554128 => Self::IfcSwitchingDeviceType,
            2254336722 => Self::IfcSystem,
            413509423 => Self::IfcSystemFurnitureElement,
            1580310250 => Self::IfcSystemFurnitureElementType,
            3071757647 => Self::IfcTShapeProfileDef,
            985171141 => Self::IfcTable,
            2043862942 => Self::IfcTableColumn,
            531007025 => Self::IfcTableRow,
            812556717 => Self::IfcTank,
            5716631 => Self::IfcTankType,
            3473067441 => Self::IfcTask,
            1549132990 => Self::IfcTaskTime,
            2771591690 => Self::IfcTaskTimeRecurring,
            3206491090 => Self::IfcTaskType,
            912023232 => Self::IfcTelecomAddress,
            3824725483 => Self::IfcTendon,
            2347447852 => Self::IfcTendonAnchor,
            3081323446 => Self::IfcTendonAnchorType,
            3663046924 => Self::IfcTendonConduit,
            2281632017 => Self::IfcTendonConduitType,
            2415094496 => Self::IfcTendonType,
            2387106220 => Self::IfcTessellatedFaceSet,
            901063453 => Self::IfcTessellatedItem,
            4282788508 => Self::IfcTextLiteral,
            3124975700 => Self::IfcTextLiteralWithExtent,
            1447204868 => Self::IfcTextStyle,
            1983826977 => Self::IfcTextStyleFontModel,
            2636378356 => Self::IfcTextStyleForDefinedFont,
            1640371178 => Self::IfcTextStyleTextModel,
            280115917 => Self::IfcTextureCoordinate,
            1742049831 => Self::IfcTextureCoordinateGenerator,
            222769930 => Self::IfcTextureCoordinateIndices,
            1010789467 => Self::IfcTextureCoordinateIndicesWithVoids,
            2552916305 => Self::IfcTextureMap,
            1210645708 => Self::IfcTextureVertex,
            3611470254 => Self::IfcTextureVertexList,
            782932809 => Self::IfcThirdOrderPolynomialSpiral,
            1199560280 => Self::IfcTimePeriod,
            3101149627 => Self::IfcTimeSeries,
            581633288 => Self::IfcTimeSeriesValue,
            1377556343 => Self::IfcTopologicalRepresentationItem,
            1735638870 => Self::IfcTopologyRepresentation,
            1935646853 => Self::IfcToroidalSurface,
            3425753595 => Self::IfcTrackElement,
            618700268 => Self::IfcTrackElementType,
            3825984169 => Self::IfcTransformer,
            1692211062 => Self::IfcTransformerType,
            1620046519 => Self::IfcTransportElement,
            2097647324 => Self::IfcTransportElementType,
            1953115116 => Self::IfcTransportationDevice,
            3665877780 => Self::IfcTransportationDeviceType,
            2715220739 => Self::IfcTrapeziumProfileDef,
            2916149573 => Self::IfcTriangulatedFaceSet,
            1229763772 => Self::IfcTriangulatedIrregularNetwork,
            3593883385 => Self::IfcTrimmedCurve,
            3026737570 => Self::IfcTubeBundle,
            1600972822 => Self::IfcTubeBundleType,
            1628702193 => Self::IfcTypeObject,
            3736923433 => Self::IfcTypeProcess,
            2347495698 => Self::IfcTypeProduct,
            3698973494 => Self::IfcTypeResource,
            427810014 => Self::IfcUShapeProfileDef,
            180925521 => Self::IfcUnitAssignment,
            630975310 => Self::IfcUnitaryControlElement,
            3179687236 => Self::IfcUnitaryControlElementType,
            4292641817 => Self::IfcUnitaryEquipment,
            1911125066 => Self::IfcUnitaryEquipmentType,
            4207607924 => Self::IfcValve,
            728799441 => Self::IfcValveType,
            1417489154 => Self::IfcVector,
            840318589 => Self::IfcVehicle,
            3651464721 => Self::IfcVehicleType,
            2799835756 => Self::IfcVertex,
            2759199220 => Self::IfcVertexLoop,
            1907098498 => Self::IfcVertexPoint,
            1530820697 => Self::IfcVibrationDamper,
            3956297820 => Self::IfcVibrationDamperType,
            2391383451 => Self::IfcVibrationIsolator,
            3313531582 => Self::IfcVibrationIsolatorType,
            2769231204 => Self::IfcVirtualElement,
            891718957 => Self::IfcVirtualGridIntersection,
            926996030 => Self::IfcVoidingFeature,
            2391406946 => Self::IfcWall,
            3512223829 => Self::IfcWallStandardCase,
            1898987631 => Self::IfcWallType,
            4237592921 => Self::IfcWasteTerminal,
            1133259667 => Self::IfcWasteTerminalType,
            1175146630 => Self::IfcWellKnownText,
            3304561284 => Self::IfcWindow,
            336235671 => Self::IfcWindowLiningProperties,
            512836454 => Self::IfcWindowPanelProperties,
            4009809668 => Self::IfcWindowType,
            4088093105 => Self::IfcWorkCalendar,
            1028945134 => Self::IfcWorkControl,
            4218914973 => Self::IfcWorkPlan,
            3342526732 => Self::IfcWorkSchedule,
            1236880293 => Self::IfcWorkTime,
            2543172580 => Self::IfcZShapeProfileDef,
            1033361043 => Self::IfcZone,
            _ => Self::Unknown(id),
        }
    }

    /// Get CRC32 type ID
    pub fn id(&self) -> u32 {
        match self {
            Self::IfcActionRequest => 3821786052,
            Self::IfcActor => 2296667514,
            Self::IfcActorRole => 3630933823,
            Self::IfcActuator => 4288193352,
            Self::IfcActuatorType => 2874132201,
            Self::IfcAddress => 618182010,
            Self::IfcAdvancedBrep => 1635779807,
            Self::IfcAdvancedBrepWithVoids => 2603310189,
            Self::IfcAdvancedFace => 3406155212,
            Self::IfcAirTerminal => 1634111441,
            Self::IfcAirTerminalBox => 177149247,
            Self::IfcAirTerminalBoxType => 1411407467,
            Self::IfcAirTerminalType => 3352864051,
            Self::IfcAirToAirHeatRecovery => 2056796094,
            Self::IfcAirToAirHeatRecoveryType => 1871374353,
            Self::IfcAlarm => 3087945054,
            Self::IfcAlarmType => 3001207471,
            Self::IfcAlignment => 325726236,
            Self::IfcAlignmentCant => 4266260250,
            Self::IfcAlignmentCantSegment => 3752311538,
            Self::IfcAlignmentHorizontal => 1545765605,
            Self::IfcAlignmentHorizontalSegment => 536804194,
            Self::IfcAlignmentParameterSegment => 2879124712,
            Self::IfcAlignmentSegment => 317615605,
            Self::IfcAlignmentVertical => 1662888072,
            Self::IfcAlignmentVerticalSegment => 3633395639,
            Self::IfcAnnotation => 1674181508,
            Self::IfcAnnotationFillArea => 669184980,
            Self::IfcApplication => 639542469,
            Self::IfcAppliedValue => 411424972,
            Self::IfcApproval => 130549933,
            Self::IfcApprovalRelationship => 3869604511,
            Self::IfcArbitraryClosedProfileDef => 3798115385,
            Self::IfcArbitraryOpenProfileDef => 1310608509,
            Self::IfcArbitraryProfileDefWithVoids => 2705031697,
            Self::IfcAsset => 3460190687,
            Self::IfcAsymmetricIShapeProfileDef => 3207858831,
            Self::IfcAudioVisualAppliance => 277319702,
            Self::IfcAudioVisualApplianceType => 1532957894,
            Self::IfcAxis1Placement => 4261334040,
            Self::IfcAxis2Placement2D => 3125803723,
            Self::IfcAxis2Placement3D => 2740243338,
            Self::IfcAxis2PlacementLinear => 3425423356,
            Self::IfcBSplineCurve => 1967976161,
            Self::IfcBSplineCurveWithKnots => 2461110595,
            Self::IfcBSplineSurface => 2887950389,
            Self::IfcBSplineSurfaceWithKnots => 167062518,
            Self::IfcBeam => 753842376,
            Self::IfcBeamType => 819618141,
            Self::IfcBearing => 4196446775,
            Self::IfcBearingType => 3649138523,
            Self::IfcBlobTexture => 616511568,
            Self::IfcBlock => 1334484129,
            Self::IfcBoiler => 32344328,
            Self::IfcBoilerType => 231477066,
            Self::IfcBooleanClippingResult => 3649129432,
            Self::IfcBooleanResult => 2736907675,
            Self::IfcBorehole => 3314249567,
            Self::IfcBoundaryCondition => 4037036970,
            Self::IfcBoundaryCurve => 1136057603,
            Self::IfcBoundaryEdgeCondition => 1560379544,
            Self::IfcBoundaryFaceCondition => 3367102660,
            Self::IfcBoundaryNodeCondition => 1387855156,
            Self::IfcBoundaryNodeConditionWarping => 2069777674,
            Self::IfcBoundedCurve => 1260505505,
            Self::IfcBoundedSurface => 4182860854,
            Self::IfcBoundingBox => 2581212453,
            Self::IfcBoxedHalfSpace => 2713105998,
            Self::IfcBridge => 644574406,
            Self::IfcBridgePart => 963979645,
            Self::IfcBuilding => 4031249490,
            Self::IfcBuildingElementPart => 2979338954,
            Self::IfcBuildingElementPartType => 39481116,
            Self::IfcBuildingElementProxy => 1095909175,
            Self::IfcBuildingElementProxyType => 1909888760,
            Self::IfcBuildingStorey => 3124254112,
            Self::IfcBuildingSystem => 1177604601,
            Self::IfcBuiltElement => 1876633798,
            Self::IfcBuiltElementType => 1626504194,
            Self::IfcBuiltSystem => 3862327254,
            Self::IfcBurner => 2938176219,
            Self::IfcBurnerType => 2188180465,
            Self::IfcCShapeProfileDef => 2898889636,
            Self::IfcCableCarrierFitting => 635142910,
            Self::IfcCableCarrierFittingType => 395041908,
            Self::IfcCableCarrierSegment => 3758799889,
            Self::IfcCableCarrierSegmentType => 3293546465,
            Self::IfcCableFitting => 1051757585,
            Self::IfcCableFittingType => 2674252688,
            Self::IfcCableSegment => 4217484030,
            Self::IfcCableSegmentType => 1285652485,
            Self::IfcCaissonFoundation => 3999819293,
            Self::IfcCaissonFoundationType => 3203706013,
            Self::IfcCartesianPoint => 1123145078,
            Self::IfcCartesianPointList => 574549367,
            Self::IfcCartesianPointList2D => 1675464909,
            Self::IfcCartesianPointList3D => 2059837836,
            Self::IfcCartesianTransformationOperator => 59481748,
            Self::IfcCartesianTransformationOperator2D => 3749851601,
            Self::IfcCartesianTransformationOperator2DnonUniform => 3486308946,
            Self::IfcCartesianTransformationOperator3D => 3331915920,
            Self::IfcCartesianTransformationOperator3DnonUniform => 1416205885,
            Self::IfcCenterLineProfileDef => 3150382593,
            Self::IfcChiller => 3902619387,
            Self::IfcChillerType => 2951183804,
            Self::IfcChimney => 3296154744,
            Self::IfcChimneyType => 2197970202,
            Self::IfcCircle => 2611217952,
            Self::IfcCircleHollowProfileDef => 2937912522,
            Self::IfcCircleProfileDef => 1383045692,
            Self::IfcCivilElement => 1677625105,
            Self::IfcCivilElementType => 3893394355,
            Self::IfcClassification => 747523909,
            Self::IfcClassificationReference => 647927063,
            Self::IfcClosedShell => 2205249479,
            Self::IfcClothoid => 3497074424,
            Self::IfcCoil => 639361253,
            Self::IfcCoilType => 2301859152,
            Self::IfcColourRgb => 776857604,
            Self::IfcColourRgbList => 3285139300,
            Self::IfcColourSpecification => 3264961684,
            Self::IfcColumn => 843113511,
            Self::IfcColumnType => 300633059,
            Self::IfcCommunicationsAppliance => 3221913625,
            Self::IfcCommunicationsApplianceType => 400855858,
            Self::IfcComplexProperty => 2542286263,
            Self::IfcComplexPropertyTemplate => 3875453745,
            Self::IfcCompositeCurve => 3732776249,
            Self::IfcCompositeCurveOnSurface => 15328376,
            Self::IfcCompositeCurveSegment => 2485617015,
            Self::IfcCompositeProfileDef => 1485152156,
            Self::IfcCompressor => 3571504051,
            Self::IfcCompressorType => 3850581409,
            Self::IfcCondenser => 2272882330,
            Self::IfcCondenserType => 2816379211,
            Self::IfcConic => 2510884976,
            Self::IfcConnectedFaceSet => 370225590,
            Self::IfcConnectionCurveGeometry => 1981873012,
            Self::IfcConnectionGeometry => 2859738748,
            Self::IfcConnectionPointEccentricity => 45288368,
            Self::IfcConnectionPointGeometry => 2614616156,
            Self::IfcConnectionSurfaceGeometry => 2732653382,
            Self::IfcConnectionVolumeGeometry => 775493141,
            Self::IfcConstraint => 1959218052,
            Self::IfcConstructionEquipmentResource => 3898045240,
            Self::IfcConstructionEquipmentResourceType => 2185764099,
            Self::IfcConstructionMaterialResource => 1060000209,
            Self::IfcConstructionMaterialResourceType => 4105962743,
            Self::IfcConstructionProductResource => 488727124,
            Self::IfcConstructionProductResourceType => 1525564444,
            Self::IfcConstructionResource => 2559216714,
            Self::IfcConstructionResourceType => 2574617495,
            Self::IfcContext => 3419103109,
            Self::IfcContextDependentUnit => 3050246964,
            Self::IfcControl => 3293443760,
            Self::IfcController => 25142252,
            Self::IfcControllerType => 578613899,
            Self::IfcConversionBasedUnit => 2889183280,
            Self::IfcConversionBasedUnitWithOffset => 2713554722,
            Self::IfcConveyorSegment => 3460952963,
            Self::IfcConveyorSegmentType => 2940368186,
            Self::IfcCooledBeam => 4136498852,
            Self::IfcCooledBeamType => 335055490,
            Self::IfcCoolingTower => 3640358203,
            Self::IfcCoolingTowerType => 2954562838,
            Self::IfcCoordinateOperation => 1785450214,
            Self::IfcCoordinateReferenceSystem => 1466758467,
            Self::IfcCosineSpiral => 2000195564,
            Self::IfcCostItem => 3895139033,
            Self::IfcCostSchedule => 1419761937,
            Self::IfcCostValue => 602808272,
            Self::IfcCourse => 1502416096,
            Self::IfcCourseType => 4189326743,
            Self::IfcCovering => 1973544240,
            Self::IfcCoveringType => 1916426348,
            Self::IfcCrewResource => 3295246426,
            Self::IfcCrewResourceType => 1815067380,
            Self::IfcCsgPrimitive3D => 2506170314,
            Self::IfcCsgSolid => 2147822146,
            Self::IfcCurrencyRelationship => 539742890,
            Self::IfcCurtainWall => 3495092785,
            Self::IfcCurtainWallType => 1457835157,
            Self::IfcCurve => 2601014836,
            Self::IfcCurveBoundedPlane => 2827736869,
            Self::IfcCurveBoundedSurface => 2629017746,
            Self::IfcCurveSegment => 4212018352,
            Self::IfcCurveStyle => 3800577675,
            Self::IfcCurveStyleFont => 1105321065,
            Self::IfcCurveStyleFontAndScaling => 2367409068,
            Self::IfcCurveStyleFontPattern => 3510044353,
            Self::IfcCylindricalSurface => 1213902940,
            Self::IfcDamper => 4074379575,
            Self::IfcDamperType => 3961806047,
            Self::IfcDeepFoundation => 3426335179,
            Self::IfcDeepFoundationType => 1306400036,
            Self::IfcDerivedProfileDef => 3632507154,
            Self::IfcDerivedUnit => 1765591967,
            Self::IfcDerivedUnitElement => 1045800335,
            Self::IfcDimensionalExponents => 2949456006,
            Self::IfcDirection => 32440307,
            Self::IfcDirectrixCurveSweptAreaSolid => 593015953,
            Self::IfcDirectrixDerivedReferenceSweptAreaSolid => 4234616927,
            Self::IfcDiscreteAccessory => 1335981549,
            Self::IfcDiscreteAccessoryType => 2635815018,
            Self::IfcDistributionBoard => 3693000487,
            Self::IfcDistributionBoardType => 479945903,
            Self::IfcDistributionChamberElement => 1052013943,
            Self::IfcDistributionChamberElementType => 1599208980,
            Self::IfcDistributionCircuit => 562808652,
            Self::IfcDistributionControlElement => 1062813311,
            Self::IfcDistributionControlElementType => 2063403501,
            Self::IfcDistributionElement => 1945004755,
            Self::IfcDistributionElementType => 3256556792,
            Self::IfcDistributionFlowElement => 3040386961,
            Self::IfcDistributionFlowElementType => 3849074793,
            Self::IfcDistributionPort => 3041715199,
            Self::IfcDistributionSystem => 3205830791,
            Self::IfcDocumentInformation => 1154170062,
            Self::IfcDocumentInformationRelationship => 770865208,
            Self::IfcDocumentReference => 3732053477,
            Self::IfcDoor => 395920057,
            Self::IfcDoorLiningProperties => 2963535650,
            Self::IfcDoorPanelProperties => 1714330368,
            Self::IfcDoorType => 2323601079,
            Self::IfcDraughtingPreDefinedColour => 445594917,
            Self::IfcDraughtingPreDefinedCurveFont => 4006246654,
            Self::IfcDuctFitting => 342316401,
            Self::IfcDuctFittingType => 869906466,
            Self::IfcDuctSegment => 3518393246,
            Self::IfcDuctSegmentType => 3760055223,
            Self::IfcDuctSilencer => 1360408905,
            Self::IfcDuctSilencerType => 2030761528,
            Self::IfcEarthworksCut => 3071239417,
            Self::IfcEarthworksElement => 1077100507,
            Self::IfcEarthworksFill => 3376911765,
            Self::IfcEdge => 3900360178,
            Self::IfcEdgeCurve => 476780140,
            Self::IfcEdgeLoop => 1472233963,
            Self::IfcElectricAppliance => 1904799276,
            Self::IfcElectricApplianceType => 663422040,
            Self::IfcElectricDistributionBoard => 862014818,
            Self::IfcElectricDistributionBoardType => 2417008758,
            Self::IfcElectricFlowStorageDevice => 3310460725,
            Self::IfcElectricFlowStorageDeviceType => 3277789161,
            Self::IfcElectricFlowTreatmentDevice => 24726584,
            Self::IfcElectricFlowTreatmentDeviceType => 2142170206,
            Self::IfcElectricGenerator => 264262732,
            Self::IfcElectricGeneratorType => 1534661035,
            Self::IfcElectricMotor => 402227799,
            Self::IfcElectricMotorType => 1217240411,
            Self::IfcElectricTimeControl => 1003880860,
            Self::IfcElectricTimeControlType => 712377611,
            Self::IfcElement => 1758889154,
            Self::IfcElementAssembly => 4123344466,
            Self::IfcElementAssemblyType => 2397081782,
            Self::IfcElementComponent => 1623761950,
            Self::IfcElementComponentType => 2590856083,
            Self::IfcElementQuantity => 1883228015,
            Self::IfcElementType => 339256511,
            Self::IfcElementarySurface => 2777663545,
            Self::IfcEllipse => 1704287377,
            Self::IfcEllipseProfileDef => 2835456948,
            Self::IfcEnergyConversionDevice => 1658829314,
            Self::IfcEnergyConversionDeviceType => 2107101300,
            Self::IfcEngine => 2814081492,
            Self::IfcEngineType => 132023988,
            Self::IfcEvaporativeCooler => 3747195512,
            Self::IfcEvaporativeCoolerType => 3174744832,
            Self::IfcEvaporator => 484807127,
            Self::IfcEvaporatorType => 3390157468,
            Self::IfcEvent => 4148101412,
            Self::IfcEventTime => 211053100,
            Self::IfcEventType => 4024345920,
            Self::IfcExtendedProperties => 297599258,
            Self::IfcExternalInformation => 4294318154,
            Self::IfcExternalReference => 3200245327,
            Self::IfcExternalReferenceRelationship => 1437805879,
            Self::IfcExternalSpatialElement => 1209101575,
            Self::IfcExternalSpatialStructureElement => 2853485674,
            Self::IfcExternallyDefinedHatchStyle => 2242383968,
            Self::IfcExternallyDefinedSurfaceStyle => 1040185647,
            Self::IfcExternallyDefinedTextFont => 3548104201,
            Self::IfcExtrudedAreaSolid => 477187591,
            Self::IfcExtrudedAreaSolidTapered => 2804161546,
            Self::IfcFace => 2556980723,
            Self::IfcFaceBasedSurfaceModel => 2047409740,
            Self::IfcFaceBound => 1809719519,
            Self::IfcFaceOuterBound => 803316827,
            Self::IfcFaceSurface => 3008276851,
            Self::IfcFacetedBrep => 807026263,
            Self::IfcFacetedBrepWithVoids => 3737207727,
            Self::IfcFacility => 24185140,
            Self::IfcFacilityPart => 1310830890,
            Self::IfcFacilityPartCommon => 4228831410,
            Self::IfcFailureConnectionCondition => 4219587988,
            Self::IfcFan => 3415622556,
            Self::IfcFanType => 346874300,
            Self::IfcFastener => 647756555,
            Self::IfcFastenerType => 2489546625,
            Self::IfcFeatureElement => 2827207264,
            Self::IfcFeatureElementAddition => 2143335405,
            Self::IfcFeatureElementSubtraction => 1287392070,
            Self::IfcFillAreaStyle => 738692330,
            Self::IfcFillAreaStyleHatching => 374418227,
            Self::IfcFillAreaStyleTiles => 315944413,
            Self::IfcFilter => 819412036,
            Self::IfcFilterType => 1810631287,
            Self::IfcFireSuppressionTerminal => 1426591983,
            Self::IfcFireSuppressionTerminalType => 4222183408,
            Self::IfcFixedReferenceSweptAreaSolid => 2652556860,
            Self::IfcFlowController => 2058353004,
            Self::IfcFlowControllerType => 3907093117,
            Self::IfcFlowFitting => 4278956645,
            Self::IfcFlowFittingType => 3198132628,
            Self::IfcFlowInstrument => 182646315,
            Self::IfcFlowInstrumentType => 4037862832,
            Self::IfcFlowMeter => 2188021234,
            Self::IfcFlowMeterType => 3815607619,
            Self::IfcFlowMovingDevice => 3132237377,
            Self::IfcFlowMovingDeviceType => 1482959167,
            Self::IfcFlowSegment => 987401354,
            Self::IfcFlowSegmentType => 1834744321,
            Self::IfcFlowStorageDevice => 707683696,
            Self::IfcFlowStorageDeviceType => 1339347760,
            Self::IfcFlowTerminal => 2223149337,
            Self::IfcFlowTerminalType => 2297155007,
            Self::IfcFlowTreatmentDevice => 3508470533,
            Self::IfcFlowTreatmentDeviceType => 3009222698,
            Self::IfcFooting => 900683007,
            Self::IfcFootingType => 1893162501,
            Self::IfcFurnishingElement => 263784265,
            Self::IfcFurnishingElementType => 4238390223,
            Self::IfcFurniture => 1509553395,
            Self::IfcFurnitureType => 1268542332,
            Self::IfcGeographicCRS => 917726184,
            Self::IfcGeographicElement => 3493046030,
            Self::IfcGeographicElementType => 4095422895,
            Self::IfcGeometricCurveSet => 987898635,
            Self::IfcGeometricRepresentationContext => 3448662350,
            Self::IfcGeometricRepresentationItem => 2453401579,
            Self::IfcGeometricRepresentationSubContext => 4142052618,
            Self::IfcGeometricSet => 3590301190,
            Self::IfcGeomodel => 2680139844,
            Self::IfcGeoslice => 1971632696,
            Self::IfcGeotechnicalAssembly => 2713699986,
            Self::IfcGeotechnicalElement => 4230923436,
            Self::IfcGeotechnicalStratum => 1594536857,
            Self::IfcGradientCurve => 2898700619,
            Self::IfcGrid => 3009204131,
            Self::IfcGridAxis => 852622518,
            Self::IfcGridPlacement => 178086475,
            Self::IfcGroup => 2706460486,
            Self::IfcHalfSpaceSolid => 812098782,
            Self::IfcHeatExchanger => 3319311131,
            Self::IfcHeatExchangerType => 1251058090,
            Self::IfcHumidifier => 2068733104,
            Self::IfcHumidifierType => 1806887404,
            Self::IfcIShapeProfileDef => 1484403080,
            Self::IfcImageTexture => 3905492369,
            Self::IfcImpactProtectionDevice => 2568555532,
            Self::IfcImpactProtectionDeviceType => 3948183225,
            Self::IfcIndexedColourMap => 3570813810,
            Self::IfcIndexedPolyCurve => 2571569899,
            Self::IfcIndexedPolygonalFace => 178912537,
            Self::IfcIndexedPolygonalFaceWithVoids => 2294589976,
            Self::IfcIndexedPolygonalTextureMap => 3465909080,
            Self::IfcIndexedTextureMap => 1437953363,
            Self::IfcIndexedTriangleTextureMap => 2133299955,
            Self::IfcInterceptor => 4175244083,
            Self::IfcInterceptorType => 3946677679,
            Self::IfcIntersectionCurve => 3113134337,
            Self::IfcInventory => 2391368822,
            Self::IfcIrregularTimeSeries => 3741457305,
            Self::IfcIrregularTimeSeriesValue => 3020489413,
            Self::IfcJunctionBox => 2176052936,
            Self::IfcJunctionBoxType => 4288270099,
            Self::IfcKerb => 2696325953,
            Self::IfcKerbType => 679976338,
            Self::IfcLShapeProfileDef => 572779678,
            Self::IfcLaborResource => 3827777499,
            Self::IfcLaborResourceType => 428585644,
            Self::IfcLagTime => 1585845231,
            Self::IfcLamp => 76236018,
            Self::IfcLampType => 1051575348,
            Self::IfcLibraryInformation => 2655187982,
            Self::IfcLibraryReference => 3452421091,
            Self::IfcLightDistributionData => 4162380809,
            Self::IfcLightFixture => 629592764,
            Self::IfcLightFixtureType => 1161773419,
            Self::IfcLightIntensityDistribution => 1566485204,
            Self::IfcLightSource => 1402838566,
            Self::IfcLightSourceAmbient => 125510826,
            Self::IfcLightSourceDirectional => 2604431987,
            Self::IfcLightSourceGoniometric => 4266656042,
            Self::IfcLightSourcePositional => 1520743889,
            Self::IfcLightSourceSpot => 3422422726,
            Self::IfcLine => 1281925730,
            Self::IfcLinearElement => 2176059722,
            Self::IfcLinearPlacement => 388784114,
            Self::IfcLinearPositioningElement => 1154579445,
            Self::IfcLiquidTerminal => 1638804497,
            Self::IfcLiquidTerminalType => 1770583370,
            Self::IfcLocalPlacement => 2624227202,
            Self::IfcLoop => 1008929658,
            Self::IfcManifoldSolidBrep => 1425443689,
            Self::IfcMapConversion => 3057273783,
            Self::IfcMapConversionScaled => 4105526436,
            Self::IfcMappedItem => 2347385850,
            Self::IfcMarineFacility => 525669439,
            Self::IfcMarinePart => 976884017,
            Self::IfcMaterial => 1838606355,
            Self::IfcMaterialClassificationRelationship => 1847130766,
            Self::IfcMaterialConstituent => 3708119000,
            Self::IfcMaterialConstituentSet => 2852063980,
            Self::IfcMaterialDefinition => 760658860,
            Self::IfcMaterialDefinitionRepresentation => 2022407955,
            Self::IfcMaterialLayer => 248100487,
            Self::IfcMaterialLayerSet => 3303938423,
            Self::IfcMaterialLayerSetUsage => 1303795690,
            Self::IfcMaterialLayerWithOffsets => 1847252529,
            Self::IfcMaterialList => 2199411900,
            Self::IfcMaterialProfile => 2235152071,
            Self::IfcMaterialProfileSet => 164193824,
            Self::IfcMaterialProfileSetUsage => 3079605661,
            Self::IfcMaterialProfileSetUsageTapering => 3404854881,
            Self::IfcMaterialProfileWithOffsets => 552965576,
            Self::IfcMaterialProperties => 3265635763,
            Self::IfcMaterialRelationship => 853536259,
            Self::IfcMaterialUsageDefinition => 1507914824,
            Self::IfcMeasureWithUnit => 2597039031,
            Self::IfcMechanicalFastener => 377706215,
            Self::IfcMechanicalFastenerType => 2108223431,
            Self::IfcMedicalDevice => 1437502449,
            Self::IfcMedicalDeviceType => 1114901282,
            Self::IfcMember => 1073191201,
            Self::IfcMemberType => 3181161470,
            Self::IfcMetric => 3368373690,
            Self::IfcMirroredProfileDef => 2998442950,
            Self::IfcMobileTelecommunicationsAppliance => 2078563270,
            Self::IfcMobileTelecommunicationsApplianceType => 1950438474,
            Self::IfcMonetaryUnit => 2706619895,
            Self::IfcMooringDevice => 234836483,
            Self::IfcMooringDeviceType => 710110818,
            Self::IfcMotorConnection => 2474470126,
            Self::IfcMotorConnectionType => 977012517,
            Self::IfcNamedUnit => 1918398963,
            Self::IfcNavigationElement => 2182337498,
            Self::IfcNavigationElementType => 506776471,
            Self::IfcObject => 3888040117,
            Self::IfcObjectDefinition => 219451334,
            Self::IfcObjectPlacement => 3701648758,
            Self::IfcObjective => 2251480897,
            Self::IfcOccupant => 4143007308,
            Self::IfcOffsetCurve => 590820931,
            Self::IfcOffsetCurve2D => 3388369263,
            Self::IfcOffsetCurve3D => 3505215534,
            Self::IfcOffsetCurveByDistances => 2485787929,
            Self::IfcOpenCrossProfileDef => 182550632,
            Self::IfcOpenShell => 2665983363,
            Self::IfcOpeningElement => 3588315303,
            Self::IfcOrganization => 4251960020,
            Self::IfcOrganizationRelationship => 1411181986,
            Self::IfcOrientedEdge => 1029017970,
            Self::IfcOuterBoundaryCurve => 144952367,
            Self::IfcOutlet => 3694346114,
            Self::IfcOutletType => 2837617999,
            Self::IfcOwnerHistory => 1207048766,
            Self::IfcParameterizedProfileDef => 2529465313,
            Self::IfcPath => 2519244187,
            Self::IfcPavement => 1383356374,
            Self::IfcPavementType => 514975943,
            Self::IfcPcurve => 1682466193,
            Self::IfcPerformanceHistory => 2382730787,
            Self::IfcPermeableCoveringProperties => 3566463478,
            Self::IfcPermit => 3327091369,
            Self::IfcPerson => 2077209135,
            Self::IfcPersonAndOrganization => 101040310,
            Self::IfcPhysicalComplexQuantity => 3021840470,
            Self::IfcPhysicalQuantity => 2483315170,
            Self::IfcPhysicalSimpleQuantity => 2226359599,
            Self::IfcPile => 1687234759,
            Self::IfcPileType => 1158309216,
            Self::IfcPipeFitting => 310824031,
            Self::IfcPipeFittingType => 804291784,
            Self::IfcPipeSegment => 3612865200,
            Self::IfcPipeSegmentType => 4231323485,
            Self::IfcPixelTexture => 597895409,
            Self::IfcPlacement => 2004835150,
            Self::IfcPlanarBox => 603570806,
            Self::IfcPlanarExtent => 1663979128,
            Self::IfcPlane => 220341763,
            Self::IfcPlate => 3171933400,
            Self::IfcPlateType => 4017108033,
            Self::IfcPoint => 2067069095,
            Self::IfcPointByDistanceExpression => 2165702409,
            Self::IfcPointOnCurve => 4022376103,
            Self::IfcPointOnSurface => 1423911732,
            Self::IfcPolyLoop => 2924175390,
            Self::IfcPolygonalBoundedHalfSpace => 2775532180,
            Self::IfcPolygonalFaceSet => 2839578677,
            Self::IfcPolyline => 3724593414,
            Self::IfcPolynomialCurve => 3381221214,
            Self::IfcPort => 3740093272,
            Self::IfcPositioningElement => 1946335990,
            Self::IfcPostalAddress => 3355820592,
            Self::IfcPreDefinedColour => 759155922,
            Self::IfcPreDefinedCurveFont => 2559016684,
            Self::IfcPreDefinedItem => 3727388367,
            Self::IfcPreDefinedProperties => 3778827333,
            Self::IfcPreDefinedPropertySet => 3967405729,
            Self::IfcPreDefinedTextFont => 1775413392,
            Self::IfcPresentationItem => 677532197,
            Self::IfcPresentationLayerAssignment => 2022622350,
            Self::IfcPresentationLayerWithStyle => 1304840413,
            Self::IfcPresentationStyle => 3119450353,
            Self::IfcProcedure => 2744685151,
            Self::IfcProcedureType => 569719735,
            Self::IfcProcess => 2945172077,
            Self::IfcProduct => 4208778838,
            Self::IfcProductDefinitionShape => 673634403,
            Self::IfcProductRepresentation => 2095639259,
            Self::IfcProfileDef => 3958567839,
            Self::IfcProfileProperties => 2802850158,
            Self::IfcProject => 103090709,
            Self::IfcProjectLibrary => 653396225,
            Self::IfcProjectOrder => 2904328755,
            Self::IfcProjectedCRS => 3843373140,
            Self::IfcProjectionElement => 3651124850,
            Self::IfcProperty => 2598011224,
            Self::IfcPropertyAbstraction => 986844984,
            Self::IfcPropertyBoundedValue => 871118103,
            Self::IfcPropertyDefinition => 1680319473,
            Self::IfcPropertyDependencyRelationship => 148025276,
            Self::IfcPropertyEnumeratedValue => 4166981789,
            Self::IfcPropertyEnumeration => 3710013099,
            Self::IfcPropertyListValue => 2752243245,
            Self::IfcPropertyReferenceValue => 941946838,
            Self::IfcPropertySet => 1451395588,
            Self::IfcPropertySetDefinition => 3357820518,
            Self::IfcPropertySetTemplate => 492091185,
            Self::IfcPropertySingleValue => 3650150729,
            Self::IfcPropertyTableValue => 110355661,
            Self::IfcPropertyTemplate => 3521284610,
            Self::IfcPropertyTemplateDefinition => 1482703590,
            Self::IfcProtectiveDevice => 738039164,
            Self::IfcProtectiveDeviceTrippingUnit => 2295281155,
            Self::IfcProtectiveDeviceTrippingUnitType => 655969474,
            Self::IfcProtectiveDeviceType => 1842657554,
            Self::IfcPump => 90941305,
            Self::IfcPumpType => 2250791053,
            Self::IfcQuantityArea => 2044713172,
            Self::IfcQuantityCount => 2093928680,
            Self::IfcQuantityLength => 931644368,
            Self::IfcQuantityNumber => 2691318326,
            Self::IfcQuantitySet => 2090586900,
            Self::IfcQuantityTime => 3252649465,
            Self::IfcQuantityVolume => 2405470396,
            Self::IfcQuantityWeight => 825690147,
            Self::IfcRail => 3290496277,
            Self::IfcRailType => 1763565496,
            Self::IfcRailing => 2262370178,
            Self::IfcRailingType => 2893384427,
            Self::IfcRailway => 3992365140,
            Self::IfcRailwayPart => 1891881377,
            Self::IfcRamp => 3024970846,
            Self::IfcRampFlight => 3283111854,
            Self::IfcRampFlightType => 2324767716,
            Self::IfcRampType => 1469900589,
            Self::IfcRationalBSplineCurveWithKnots => 1232101972,
            Self::IfcRationalBSplineSurfaceWithKnots => 683857671,
            Self::IfcRectangleHollowProfileDef => 2770003689,
            Self::IfcRectangleProfileDef => 3615266464,
            Self::IfcRectangularPyramid => 2798486643,
            Self::IfcRectangularTrimmedSurface => 3454111270,
            Self::IfcRecurrencePattern => 3915482550,
            Self::IfcReference => 2433181523,
            Self::IfcReferent => 4021432810,
            Self::IfcRegularTimeSeries => 3413951693,
            Self::IfcReinforcedSoil => 3798194928,
            Self::IfcReinforcementBarProperties => 1580146022,
            Self::IfcReinforcementDefinitionProperties => 3765753017,
            Self::IfcReinforcingBar => 979691226,
            Self::IfcReinforcingBarType => 2572171363,
            Self::IfcReinforcingElement => 3027567501,
            Self::IfcReinforcingElementType => 964333572,
            Self::IfcReinforcingMesh => 2320036040,
            Self::IfcReinforcingMeshType => 2310774935,
            Self::IfcRelAdheresToElement => 3818125796,
            Self::IfcRelAggregates => 160246688,
            Self::IfcRelAssigns => 3939117080,
            Self::IfcRelAssignsToActor => 1683148259,
            Self::IfcRelAssignsToControl => 2495723537,
            Self::IfcRelAssignsToGroup => 1307041759,
            Self::IfcRelAssignsToGroupByFactor => 1027710054,
            Self::IfcRelAssignsToProcess => 4278684876,
            Self::IfcRelAssignsToProduct => 2857406711,
            Self::IfcRelAssignsToResource => 205026976,
            Self::IfcRelAssociates => 1865459582,
            Self::IfcRelAssociatesApproval => 4095574036,
            Self::IfcRelAssociatesClassification => 919958153,
            Self::IfcRelAssociatesConstraint => 2728634034,
            Self::IfcRelAssociatesDocument => 982818633,
            Self::IfcRelAssociatesLibrary => 3840914261,
            Self::IfcRelAssociatesMaterial => 2655215786,
            Self::IfcRelAssociatesProfileDef => 1033248425,
            Self::IfcRelConnects => 826625072,
            Self::IfcRelConnectsElements => 1204542856,
            Self::IfcRelConnectsPathElements => 3945020480,
            Self::IfcRelConnectsPortToElement => 4201705270,
            Self::IfcRelConnectsPorts => 3190031847,
            Self::IfcRelConnectsStructuralActivity => 2127690289,
            Self::IfcRelConnectsStructuralMember => 1638771189,
            Self::IfcRelConnectsWithEccentricity => 504942748,
            Self::IfcRelConnectsWithRealizingElements => 3678494232,
            Self::IfcRelContainedInSpatialStructure => 3242617779,
            Self::IfcRelCoversBldgElements => 886880790,
            Self::IfcRelCoversSpaces => 2802773753,
            Self::IfcRelDeclares => 2565941209,
            Self::IfcRelDecomposes => 2551354335,
            Self::IfcRelDefines => 693640335,
            Self::IfcRelDefinesByObject => 1462361463,
            Self::IfcRelDefinesByProperties => 4186316022,
            Self::IfcRelDefinesByTemplate => 307848117,
            Self::IfcRelDefinesByType => 781010003,
            Self::IfcRelFillsElement => 3940055652,
            Self::IfcRelFlowControlElements => 279856033,
            Self::IfcRelInterferesElements => 427948657,
            Self::IfcRelNests => 3268803585,
            Self::IfcRelPositions => 1441486842,
            Self::IfcRelProjectsElement => 750771296,
            Self::IfcRelReferencedInSpatialStructure => 1245217292,
            Self::IfcRelSequence => 4122056220,
            Self::IfcRelServicesBuildings => 366585022,
            Self::IfcRelSpaceBoundary => 3451746338,
            Self::IfcRelSpaceBoundary1stLevel => 3523091289,
            Self::IfcRelSpaceBoundary2ndLevel => 1521410863,
            Self::IfcRelVoidsElement => 1401173127,
            Self::IfcRelationship => 478536968,
            Self::IfcReparametrisedCompositeCurveSegment => 816062949,
            Self::IfcRepresentation => 1076942058,
            Self::IfcRepresentationContext => 3377609919,
            Self::IfcRepresentationItem => 3008791417,
            Self::IfcRepresentationMap => 1660063152,
            Self::IfcResource => 2914609552,
            Self::IfcResourceApprovalRelationship => 2943643501,
            Self::IfcResourceConstraintRelationship => 1608871552,
            Self::IfcResourceLevelRelationship => 2439245199,
            Self::IfcResourceTime => 1042787934,
            Self::IfcRevolvedAreaSolid => 1856042241,
            Self::IfcRevolvedAreaSolidTapered => 3243963512,
            Self::IfcRightCircularCone => 4158566097,
            Self::IfcRightCircularCylinder => 3626867408,
            Self::IfcRigidOperation => 1794013214,
            Self::IfcRoad => 146592293,
            Self::IfcRoadPart => 550521510,
            Self::IfcRoof => 2016517767,
            Self::IfcRoofType => 2781568857,
            Self::IfcRoot => 2341007311,
            Self::IfcRoundedRectangleProfileDef => 2778083089,
            Self::IfcSIUnit => 448429030,
            Self::IfcSanitaryTerminal => 3053780830,
            Self::IfcSanitaryTerminalType => 1768891740,
            Self::IfcSchedulingTime => 1054537805,
            Self::IfcSeamCurve => 2157484638,
            Self::IfcSecondOrderPolynomialSpiral => 3649235739,
            Self::IfcSectionProperties => 2042790032,
            Self::IfcSectionReinforcementProperties => 4165799628,
            Self::IfcSectionedSolid => 1862484736,
            Self::IfcSectionedSolidHorizontal => 1290935644,
            Self::IfcSectionedSpine => 1509187699,
            Self::IfcSectionedSurface => 1356537516,
            Self::IfcSegment => 823603102,
            Self::IfcSegmentedReferenceCurve => 544395925,
            Self::IfcSensor => 4086658281,
            Self::IfcSensorType => 1783015770,
            Self::IfcSeventhOrderPolynomialSpiral => 1027922057,
            Self::IfcShadingDevice => 1329646415,
            Self::IfcShadingDeviceType => 4074543187,
            Self::IfcShapeAspect => 867548509,
            Self::IfcShapeModel => 3982875396,
            Self::IfcShapeRepresentation => 4240577450,
            Self::IfcShellBasedSurfaceModel => 4124623270,
            Self::IfcSign => 33720170,
            Self::IfcSignType => 3599934289,
            Self::IfcSignal => 991950508,
            Self::IfcSignalType => 1894708472,
            Self::IfcSimpleProperty => 3692461612,
            Self::IfcSimplePropertyTemplate => 3663146110,
            Self::IfcSineSpiral => 42703149,
            Self::IfcSite => 4097777520,
            Self::IfcSlab => 1529196076,
            Self::IfcSlabType => 2533589738,
            Self::IfcSlippageConnectionCondition => 2609359061,
            Self::IfcSolarDevice => 3420628829,
            Self::IfcSolarDeviceType => 1072016465,
            Self::IfcSolidModel => 723233188,
            Self::IfcSpace => 3856911033,
            Self::IfcSpaceHeater => 1999602285,
            Self::IfcSpaceHeaterType => 1305183839,
            Self::IfcSpaceType => 3812236995,
            Self::IfcSpatialElement => 1412071761,
            Self::IfcSpatialElementType => 710998568,
            Self::IfcSpatialStructureElement => 2706606064,
            Self::IfcSpatialStructureElementType => 3893378262,
            Self::IfcSpatialZone => 463610769,
            Self::IfcSpatialZoneType => 2481509218,
            Self::IfcSphere => 451544542,
            Self::IfcSphericalSurface => 4015995234,
            Self::IfcSpiral => 2735484536,
            Self::IfcStackTerminal => 1404847402,
            Self::IfcStackTerminalType => 3112655638,
            Self::IfcStair => 331165859,
            Self::IfcStairFlight => 4252922144,
            Self::IfcStairFlightType => 1039846685,
            Self::IfcStairType => 338393293,
            Self::IfcStructuralAction => 682877961,
            Self::IfcStructuralActivity => 3544373492,
            Self::IfcStructuralAnalysisModel => 2515109513,
            Self::IfcStructuralConnection => 1179482911,
            Self::IfcStructuralConnectionCondition => 2273995522,
            Self::IfcStructuralCurveAction => 1004757350,
            Self::IfcStructuralCurveConnection => 4243806635,
            Self::IfcStructuralCurveMember => 214636428,
            Self::IfcStructuralCurveMemberVarying => 2445595289,
            Self::IfcStructuralCurveReaction => 2757150158,
            Self::IfcStructuralItem => 3136571912,
            Self::IfcStructuralLinearAction => 1807405624,
            Self::IfcStructuralLoad => 2162789131,
            Self::IfcStructuralLoadCase => 385403989,
            Self::IfcStructuralLoadConfiguration => 3478079324,
            Self::IfcStructuralLoadGroup => 1252848954,
            Self::IfcStructuralLoadLinearForce => 1595516126,
            Self::IfcStructuralLoadOrResult => 609421318,
            Self::IfcStructuralLoadPlanarForce => 2668620305,
            Self::IfcStructuralLoadSingleDisplacement => 2473145415,
            Self::IfcStructuralLoadSingleDisplacementDistortion => 1973038258,
            Self::IfcStructuralLoadSingleForce => 1597423693,
            Self::IfcStructuralLoadSingleForceWarping => 1190533807,
            Self::IfcStructuralLoadStatic => 2525727697,
            Self::IfcStructuralLoadTemperature => 3408363356,
            Self::IfcStructuralMember => 530289379,
            Self::IfcStructuralPlanarAction => 1621171031,
            Self::IfcStructuralPointAction => 2082059205,
            Self::IfcStructuralPointConnection => 734778138,
            Self::IfcStructuralPointReaction => 1235345126,
            Self::IfcStructuralReaction => 3689010777,
            Self::IfcStructuralResultGroup => 2986769608,
            Self::IfcStructuralSurfaceAction => 3657597509,
            Self::IfcStructuralSurfaceConnection => 1975003073,
            Self::IfcStructuralSurfaceMember => 3979015343,
            Self::IfcStructuralSurfaceMemberVarying => 2218152070,
            Self::IfcStructuralSurfaceReaction => 603775116,
            Self::IfcStyleModel => 2830218821,
            Self::IfcStyledItem => 3958052878,
            Self::IfcStyledRepresentation => 3049322572,
            Self::IfcSubContractResource => 148013059,
            Self::IfcSubContractResourceType => 4095615324,
            Self::IfcSubedge => 2233826070,
            Self::IfcSurface => 2513912981,
            Self::IfcSurfaceCurve => 699246055,
            Self::IfcSurfaceCurveSweptAreaSolid => 2028607225,
            Self::IfcSurfaceFeature => 3101698114,
            Self::IfcSurfaceOfLinearExtrusion => 2809605785,
            Self::IfcSurfaceOfRevolution => 4124788165,
            Self::IfcSurfaceReinforcementArea => 2934153892,
            Self::IfcSurfaceStyle => 1300840506,
            Self::IfcSurfaceStyleLighting => 3303107099,
            Self::IfcSurfaceStyleRefraction => 1607154358,
            Self::IfcSurfaceStyleRendering => 1878645084,
            Self::IfcSurfaceStyleShading => 846575682,
            Self::IfcSurfaceStyleWithTextures => 1351298697,
            Self::IfcSurfaceTexture => 626085974,
            Self::IfcSweptAreaSolid => 2247615214,
            Self::IfcSweptDiskSolid => 1260650574,
            Self::IfcSweptDiskSolidPolygonal => 1096409881,
            Self::IfcSweptSurface => 230924584,
            Self::IfcSwitchingDevice => 1162798199,
            Self::IfcSwitchingDeviceType => 2315554128,
            Self::IfcSystem => 2254336722,
            Self::IfcSystemFurnitureElement => 413509423,
            Self::IfcSystemFurnitureElementType => 1580310250,
            Self::IfcTShapeProfileDef => 3071757647,
            Self::IfcTable => 985171141,
            Self::IfcTableColumn => 2043862942,
            Self::IfcTableRow => 531007025,
            Self::IfcTank => 812556717,
            Self::IfcTankType => 5716631,
            Self::IfcTask => 3473067441,
            Self::IfcTaskTime => 1549132990,
            Self::IfcTaskTimeRecurring => 2771591690,
            Self::IfcTaskType => 3206491090,
            Self::IfcTelecomAddress => 912023232,
            Self::IfcTendon => 3824725483,
            Self::IfcTendonAnchor => 2347447852,
            Self::IfcTendonAnchorType => 3081323446,
            Self::IfcTendonConduit => 3663046924,
            Self::IfcTendonConduitType => 2281632017,
            Self::IfcTendonType => 2415094496,
            Self::IfcTessellatedFaceSet => 2387106220,
            Self::IfcTessellatedItem => 901063453,
            Self::IfcTextLiteral => 4282788508,
            Self::IfcTextLiteralWithExtent => 3124975700,
            Self::IfcTextStyle => 1447204868,
            Self::IfcTextStyleFontModel => 1983826977,
            Self::IfcTextStyleForDefinedFont => 2636378356,
            Self::IfcTextStyleTextModel => 1640371178,
            Self::IfcTextureCoordinate => 280115917,
            Self::IfcTextureCoordinateGenerator => 1742049831,
            Self::IfcTextureCoordinateIndices => 222769930,
            Self::IfcTextureCoordinateIndicesWithVoids => 1010789467,
            Self::IfcTextureMap => 2552916305,
            Self::IfcTextureVertex => 1210645708,
            Self::IfcTextureVertexList => 3611470254,
            Self::IfcThirdOrderPolynomialSpiral => 782932809,
            Self::IfcTimePeriod => 1199560280,
            Self::IfcTimeSeries => 3101149627,
            Self::IfcTimeSeriesValue => 581633288,
            Self::IfcTopologicalRepresentationItem => 1377556343,
            Self::IfcTopologyRepresentation => 1735638870,
            Self::IfcToroidalSurface => 1935646853,
            Self::IfcTrackElement => 3425753595,
            Self::IfcTrackElementType => 618700268,
            Self::IfcTransformer => 3825984169,
            Self::IfcTransformerType => 1692211062,
            Self::IfcTransportElement => 1620046519,
            Self::IfcTransportElementType => 2097647324,
            Self::IfcTransportationDevice => 1953115116,
            Self::IfcTransportationDeviceType => 3665877780,
            Self::IfcTrapeziumProfileDef => 2715220739,
            Self::IfcTriangulatedFaceSet => 2916149573,
            Self::IfcTriangulatedIrregularNetwork => 1229763772,
            Self::IfcTrimmedCurve => 3593883385,
            Self::IfcTubeBundle => 3026737570,
            Self::IfcTubeBundleType => 1600972822,
            Self::IfcTypeObject => 1628702193,
            Self::IfcTypeProcess => 3736923433,
            Self::IfcTypeProduct => 2347495698,
            Self::IfcTypeResource => 3698973494,
            Self::IfcUShapeProfileDef => 427810014,
            Self::IfcUnitAssignment => 180925521,
            Self::IfcUnitaryControlElement => 630975310,
            Self::IfcUnitaryControlElementType => 3179687236,
            Self::IfcUnitaryEquipment => 4292641817,
            Self::IfcUnitaryEquipmentType => 1911125066,
            Self::IfcValve => 4207607924,
            Self::IfcValveType => 728799441,
            Self::IfcVector => 1417489154,
            Self::IfcVehicle => 840318589,
            Self::IfcVehicleType => 3651464721,
            Self::IfcVertex => 2799835756,
            Self::IfcVertexLoop => 2759199220,
            Self::IfcVertexPoint => 1907098498,
            Self::IfcVibrationDamper => 1530820697,
            Self::IfcVibrationDamperType => 3956297820,
            Self::IfcVibrationIsolator => 2391383451,
            Self::IfcVibrationIsolatorType => 3313531582,
            Self::IfcVirtualElement => 2769231204,
            Self::IfcVirtualGridIntersection => 891718957,
            Self::IfcVoidingFeature => 926996030,
            Self::IfcWall => 2391406946,
            Self::IfcWallStandardCase => 3512223829,
            Self::IfcWallType => 1898987631,
            Self::IfcWasteTerminal => 4237592921,
            Self::IfcWasteTerminalType => 1133259667,
            Self::IfcWellKnownText => 1175146630,
            Self::IfcWindow => 3304561284,
            Self::IfcWindowLiningProperties => 336235671,
            Self::IfcWindowPanelProperties => 512836454,
            Self::IfcWindowType => 4009809668,
            Self::IfcWorkCalendar => 4088093105,
            Self::IfcWorkControl => 1028945134,
            Self::IfcWorkPlan => 4218914973,
            Self::IfcWorkSchedule => 3342526732,
            Self::IfcWorkTime => 1236880293,
            Self::IfcZShapeProfileDef => 2543172580,
            Self::IfcZone => 1033361043,
            Self::Unknown(id) => *id,
        }
    }

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

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

    /// Get parent type (if any)
    pub fn parent(&self) -> Option<Self> {
        match self {
            Self::IfcActionRequest => Some(Self::IfcControl),
            Self::IfcActor => Some(Self::IfcObject),
            Self::IfcActuator => Some(Self::IfcDistributionControlElement),
            Self::IfcActuatorType => Some(Self::IfcDistributionControlElementType),
            Self::IfcAdvancedBrep => Some(Self::IfcManifoldSolidBrep),
            Self::IfcAdvancedBrepWithVoids => Some(Self::IfcAdvancedBrep),
            Self::IfcAdvancedFace => Some(Self::IfcFaceSurface),
            Self::IfcAirTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcAirTerminalBox => Some(Self::IfcFlowController),
            Self::IfcAirTerminalBoxType => Some(Self::IfcFlowControllerType),
            Self::IfcAirTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcAirToAirHeatRecovery => Some(Self::IfcEnergyConversionDevice),
            Self::IfcAirToAirHeatRecoveryType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcAlarm => Some(Self::IfcDistributionControlElement),
            Self::IfcAlarmType => Some(Self::IfcDistributionControlElementType),
            Self::IfcAlignment => Some(Self::IfcLinearPositioningElement),
            Self::IfcAlignmentCant => Some(Self::IfcLinearElement),
            Self::IfcAlignmentCantSegment => Some(Self::IfcAlignmentParameterSegment),
            Self::IfcAlignmentHorizontal => Some(Self::IfcLinearElement),
            Self::IfcAlignmentHorizontalSegment => Some(Self::IfcAlignmentParameterSegment),
            Self::IfcAlignmentSegment => Some(Self::IfcLinearElement),
            Self::IfcAlignmentVertical => Some(Self::IfcLinearElement),
            Self::IfcAlignmentVerticalSegment => Some(Self::IfcAlignmentParameterSegment),
            Self::IfcAnnotation => Some(Self::IfcProduct),
            Self::IfcAnnotationFillArea => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcApprovalRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcArbitraryClosedProfileDef => Some(Self::IfcProfileDef),
            Self::IfcArbitraryOpenProfileDef => Some(Self::IfcProfileDef),
            Self::IfcArbitraryProfileDefWithVoids => Some(Self::IfcArbitraryClosedProfileDef),
            Self::IfcAsset => Some(Self::IfcGroup),
            Self::IfcAsymmetricIShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcAudioVisualAppliance => Some(Self::IfcFlowTerminal),
            Self::IfcAudioVisualApplianceType => Some(Self::IfcFlowTerminalType),
            Self::IfcAxis1Placement => Some(Self::IfcPlacement),
            Self::IfcAxis2Placement2D => Some(Self::IfcPlacement),
            Self::IfcAxis2Placement3D => Some(Self::IfcPlacement),
            Self::IfcAxis2PlacementLinear => Some(Self::IfcPlacement),
            Self::IfcBSplineCurve => Some(Self::IfcBoundedCurve),
            Self::IfcBSplineCurveWithKnots => Some(Self::IfcBSplineCurve),
            Self::IfcBSplineSurface => Some(Self::IfcBoundedSurface),
            Self::IfcBSplineSurfaceWithKnots => Some(Self::IfcBSplineSurface),
            Self::IfcBeam => Some(Self::IfcBuiltElement),
            Self::IfcBeamType => Some(Self::IfcBuiltElementType),
            Self::IfcBearing => Some(Self::IfcBuiltElement),
            Self::IfcBearingType => Some(Self::IfcBuiltElementType),
            Self::IfcBlobTexture => Some(Self::IfcSurfaceTexture),
            Self::IfcBlock => Some(Self::IfcCsgPrimitive3D),
            Self::IfcBoiler => Some(Self::IfcEnergyConversionDevice),
            Self::IfcBoilerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcBooleanClippingResult => Some(Self::IfcBooleanResult),
            Self::IfcBooleanResult => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcBorehole => Some(Self::IfcGeotechnicalAssembly),
            Self::IfcBoundaryCurve => Some(Self::IfcCompositeCurveOnSurface),
            Self::IfcBoundaryEdgeCondition => Some(Self::IfcBoundaryCondition),
            Self::IfcBoundaryFaceCondition => Some(Self::IfcBoundaryCondition),
            Self::IfcBoundaryNodeCondition => Some(Self::IfcBoundaryCondition),
            Self::IfcBoundaryNodeConditionWarping => Some(Self::IfcBoundaryNodeCondition),
            Self::IfcBoundedCurve => Some(Self::IfcCurve),
            Self::IfcBoundedSurface => Some(Self::IfcSurface),
            Self::IfcBoundingBox => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcBoxedHalfSpace => Some(Self::IfcHalfSpaceSolid),
            Self::IfcBridge => Some(Self::IfcFacility),
            Self::IfcBridgePart => Some(Self::IfcFacilityPart),
            Self::IfcBuilding => Some(Self::IfcFacility),
            Self::IfcBuildingElementPart => Some(Self::IfcElementComponent),
            Self::IfcBuildingElementPartType => Some(Self::IfcElementComponentType),
            Self::IfcBuildingElementProxy => Some(Self::IfcBuiltElement),
            Self::IfcBuildingElementProxyType => Some(Self::IfcBuiltElementType),
            Self::IfcBuildingStorey => Some(Self::IfcSpatialStructureElement),
            Self::IfcBuildingSystem => Some(Self::IfcSystem),
            Self::IfcBuiltElement => Some(Self::IfcElement),
            Self::IfcBuiltElementType => Some(Self::IfcElementType),
            Self::IfcBuiltSystem => Some(Self::IfcSystem),
            Self::IfcBurner => Some(Self::IfcEnergyConversionDevice),
            Self::IfcBurnerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcCShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcCableCarrierFitting => Some(Self::IfcFlowFitting),
            Self::IfcCableCarrierFittingType => Some(Self::IfcFlowFittingType),
            Self::IfcCableCarrierSegment => Some(Self::IfcFlowSegment),
            Self::IfcCableCarrierSegmentType => Some(Self::IfcFlowSegmentType),
            Self::IfcCableFitting => Some(Self::IfcFlowFitting),
            Self::IfcCableFittingType => Some(Self::IfcFlowFittingType),
            Self::IfcCableSegment => Some(Self::IfcFlowSegment),
            Self::IfcCableSegmentType => Some(Self::IfcFlowSegmentType),
            Self::IfcCaissonFoundation => Some(Self::IfcDeepFoundation),
            Self::IfcCaissonFoundationType => Some(Self::IfcDeepFoundationType),
            Self::IfcCartesianPoint => Some(Self::IfcPoint),
            Self::IfcCartesianPointList => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcCartesianPointList2D => Some(Self::IfcCartesianPointList),
            Self::IfcCartesianPointList3D => Some(Self::IfcCartesianPointList),
            Self::IfcCartesianTransformationOperator => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcCartesianTransformationOperator2D => {
                Some(Self::IfcCartesianTransformationOperator)
            }
            Self::IfcCartesianTransformationOperator2DnonUniform => {
                Some(Self::IfcCartesianTransformationOperator2D)
            }
            Self::IfcCartesianTransformationOperator3D => {
                Some(Self::IfcCartesianTransformationOperator)
            }
            Self::IfcCartesianTransformationOperator3DnonUniform => {
                Some(Self::IfcCartesianTransformationOperator3D)
            }
            Self::IfcCenterLineProfileDef => Some(Self::IfcArbitraryOpenProfileDef),
            Self::IfcChiller => Some(Self::IfcEnergyConversionDevice),
            Self::IfcChillerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcChimney => Some(Self::IfcBuiltElement),
            Self::IfcChimneyType => Some(Self::IfcBuiltElementType),
            Self::IfcCircle => Some(Self::IfcConic),
            Self::IfcCircleHollowProfileDef => Some(Self::IfcCircleProfileDef),
            Self::IfcCircleProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcCivilElement => Some(Self::IfcElement),
            Self::IfcCivilElementType => Some(Self::IfcElementType),
            Self::IfcClassification => Some(Self::IfcExternalInformation),
            Self::IfcClassificationReference => Some(Self::IfcExternalReference),
            Self::IfcClosedShell => Some(Self::IfcConnectedFaceSet),
            Self::IfcClothoid => Some(Self::IfcSpiral),
            Self::IfcCoil => Some(Self::IfcEnergyConversionDevice),
            Self::IfcCoilType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcColourRgb => Some(Self::IfcColourSpecification),
            Self::IfcColourRgbList => Some(Self::IfcPresentationItem),
            Self::IfcColourSpecification => Some(Self::IfcPresentationItem),
            Self::IfcColumn => Some(Self::IfcBuiltElement),
            Self::IfcColumnType => Some(Self::IfcBuiltElementType),
            Self::IfcCommunicationsAppliance => Some(Self::IfcFlowTerminal),
            Self::IfcCommunicationsApplianceType => Some(Self::IfcFlowTerminalType),
            Self::IfcComplexProperty => Some(Self::IfcProperty),
            Self::IfcComplexPropertyTemplate => Some(Self::IfcPropertyTemplate),
            Self::IfcCompositeCurve => Some(Self::IfcBoundedCurve),
            Self::IfcCompositeCurveOnSurface => Some(Self::IfcCompositeCurve),
            Self::IfcCompositeCurveSegment => Some(Self::IfcSegment),
            Self::IfcCompositeProfileDef => Some(Self::IfcProfileDef),
            Self::IfcCompressor => Some(Self::IfcFlowMovingDevice),
            Self::IfcCompressorType => Some(Self::IfcFlowMovingDeviceType),
            Self::IfcCondenser => Some(Self::IfcEnergyConversionDevice),
            Self::IfcCondenserType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcConic => Some(Self::IfcCurve),
            Self::IfcConnectedFaceSet => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcConnectionCurveGeometry => Some(Self::IfcConnectionGeometry),
            Self::IfcConnectionPointEccentricity => Some(Self::IfcConnectionPointGeometry),
            Self::IfcConnectionPointGeometry => Some(Self::IfcConnectionGeometry),
            Self::IfcConnectionSurfaceGeometry => Some(Self::IfcConnectionGeometry),
            Self::IfcConnectionVolumeGeometry => Some(Self::IfcConnectionGeometry),
            Self::IfcConstructionEquipmentResource => Some(Self::IfcConstructionResource),
            Self::IfcConstructionEquipmentResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcConstructionMaterialResource => Some(Self::IfcConstructionResource),
            Self::IfcConstructionMaterialResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcConstructionProductResource => Some(Self::IfcConstructionResource),
            Self::IfcConstructionProductResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcConstructionResource => Some(Self::IfcResource),
            Self::IfcConstructionResourceType => Some(Self::IfcTypeResource),
            Self::IfcContext => Some(Self::IfcObjectDefinition),
            Self::IfcContextDependentUnit => Some(Self::IfcNamedUnit),
            Self::IfcControl => Some(Self::IfcObject),
            Self::IfcController => Some(Self::IfcDistributionControlElement),
            Self::IfcControllerType => Some(Self::IfcDistributionControlElementType),
            Self::IfcConversionBasedUnit => Some(Self::IfcNamedUnit),
            Self::IfcConversionBasedUnitWithOffset => Some(Self::IfcConversionBasedUnit),
            Self::IfcConveyorSegment => Some(Self::IfcFlowSegment),
            Self::IfcConveyorSegmentType => Some(Self::IfcFlowSegmentType),
            Self::IfcCooledBeam => Some(Self::IfcEnergyConversionDevice),
            Self::IfcCooledBeamType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcCoolingTower => Some(Self::IfcEnergyConversionDevice),
            Self::IfcCoolingTowerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcCosineSpiral => Some(Self::IfcSpiral),
            Self::IfcCostItem => Some(Self::IfcControl),
            Self::IfcCostSchedule => Some(Self::IfcControl),
            Self::IfcCostValue => Some(Self::IfcAppliedValue),
            Self::IfcCourse => Some(Self::IfcBuiltElement),
            Self::IfcCourseType => Some(Self::IfcBuiltElementType),
            Self::IfcCovering => Some(Self::IfcBuiltElement),
            Self::IfcCoveringType => Some(Self::IfcBuiltElementType),
            Self::IfcCrewResource => Some(Self::IfcConstructionResource),
            Self::IfcCrewResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcCsgPrimitive3D => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcCsgSolid => Some(Self::IfcSolidModel),
            Self::IfcCurrencyRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcCurtainWall => Some(Self::IfcBuiltElement),
            Self::IfcCurtainWallType => Some(Self::IfcBuiltElementType),
            Self::IfcCurve => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcCurveBoundedPlane => Some(Self::IfcBoundedSurface),
            Self::IfcCurveBoundedSurface => Some(Self::IfcBoundedSurface),
            Self::IfcCurveSegment => Some(Self::IfcSegment),
            Self::IfcCurveStyle => Some(Self::IfcPresentationStyle),
            Self::IfcCurveStyleFont => Some(Self::IfcPresentationItem),
            Self::IfcCurveStyleFontAndScaling => Some(Self::IfcPresentationItem),
            Self::IfcCurveStyleFontPattern => Some(Self::IfcPresentationItem),
            Self::IfcCylindricalSurface => Some(Self::IfcElementarySurface),
            Self::IfcDamper => Some(Self::IfcFlowController),
            Self::IfcDamperType => Some(Self::IfcFlowControllerType),
            Self::IfcDeepFoundation => Some(Self::IfcBuiltElement),
            Self::IfcDeepFoundationType => Some(Self::IfcBuiltElementType),
            Self::IfcDerivedProfileDef => Some(Self::IfcProfileDef),
            Self::IfcDirection => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcDirectrixCurveSweptAreaSolid => Some(Self::IfcSweptAreaSolid),
            Self::IfcDirectrixDerivedReferenceSweptAreaSolid => {
                Some(Self::IfcFixedReferenceSweptAreaSolid)
            }
            Self::IfcDiscreteAccessory => Some(Self::IfcElementComponent),
            Self::IfcDiscreteAccessoryType => Some(Self::IfcElementComponentType),
            Self::IfcDistributionBoard => Some(Self::IfcFlowController),
            Self::IfcDistributionBoardType => Some(Self::IfcFlowControllerType),
            Self::IfcDistributionChamberElement => Some(Self::IfcDistributionFlowElement),
            Self::IfcDistributionChamberElementType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcDistributionCircuit => Some(Self::IfcDistributionSystem),
            Self::IfcDistributionControlElement => Some(Self::IfcDistributionElement),
            Self::IfcDistributionControlElementType => Some(Self::IfcDistributionElementType),
            Self::IfcDistributionElement => Some(Self::IfcElement),
            Self::IfcDistributionElementType => Some(Self::IfcElementType),
            Self::IfcDistributionFlowElement => Some(Self::IfcDistributionElement),
            Self::IfcDistributionFlowElementType => Some(Self::IfcDistributionElementType),
            Self::IfcDistributionPort => Some(Self::IfcPort),
            Self::IfcDistributionSystem => Some(Self::IfcSystem),
            Self::IfcDocumentInformation => Some(Self::IfcExternalInformation),
            Self::IfcDocumentInformationRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcDocumentReference => Some(Self::IfcExternalReference),
            Self::IfcDoor => Some(Self::IfcBuiltElement),
            Self::IfcDoorLiningProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcDoorPanelProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcDoorType => Some(Self::IfcBuiltElementType),
            Self::IfcDraughtingPreDefinedColour => Some(Self::IfcPreDefinedColour),
            Self::IfcDraughtingPreDefinedCurveFont => Some(Self::IfcPreDefinedCurveFont),
            Self::IfcDuctFitting => Some(Self::IfcFlowFitting),
            Self::IfcDuctFittingType => Some(Self::IfcFlowFittingType),
            Self::IfcDuctSegment => Some(Self::IfcFlowSegment),
            Self::IfcDuctSegmentType => Some(Self::IfcFlowSegmentType),
            Self::IfcDuctSilencer => Some(Self::IfcFlowTreatmentDevice),
            Self::IfcDuctSilencerType => Some(Self::IfcFlowTreatmentDeviceType),
            Self::IfcEarthworksCut => Some(Self::IfcFeatureElementSubtraction),
            Self::IfcEarthworksElement => Some(Self::IfcBuiltElement),
            Self::IfcEarthworksFill => Some(Self::IfcEarthworksElement),
            Self::IfcEdge => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcEdgeCurve => Some(Self::IfcEdge),
            Self::IfcEdgeLoop => Some(Self::IfcLoop),
            Self::IfcElectricAppliance => Some(Self::IfcFlowTerminal),
            Self::IfcElectricApplianceType => Some(Self::IfcFlowTerminalType),
            Self::IfcElectricDistributionBoard => Some(Self::IfcFlowController),
            Self::IfcElectricDistributionBoardType => Some(Self::IfcFlowControllerType),
            Self::IfcElectricFlowStorageDevice => Some(Self::IfcFlowStorageDevice),
            Self::IfcElectricFlowStorageDeviceType => Some(Self::IfcFlowStorageDeviceType),
            Self::IfcElectricFlowTreatmentDevice => Some(Self::IfcFlowTreatmentDevice),
            Self::IfcElectricFlowTreatmentDeviceType => Some(Self::IfcFlowTreatmentDeviceType),
            Self::IfcElectricGenerator => Some(Self::IfcEnergyConversionDevice),
            Self::IfcElectricGeneratorType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcElectricMotor => Some(Self::IfcEnergyConversionDevice),
            Self::IfcElectricMotorType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcElectricTimeControl => Some(Self::IfcFlowController),
            Self::IfcElectricTimeControlType => Some(Self::IfcFlowControllerType),
            Self::IfcElement => Some(Self::IfcProduct),
            Self::IfcElementAssembly => Some(Self::IfcElement),
            Self::IfcElementAssemblyType => Some(Self::IfcElementType),
            Self::IfcElementComponent => Some(Self::IfcElement),
            Self::IfcElementComponentType => Some(Self::IfcElementType),
            Self::IfcElementQuantity => Some(Self::IfcQuantitySet),
            Self::IfcElementType => Some(Self::IfcTypeProduct),
            Self::IfcElementarySurface => Some(Self::IfcSurface),
            Self::IfcEllipse => Some(Self::IfcConic),
            Self::IfcEllipseProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcEnergyConversionDevice => Some(Self::IfcDistributionFlowElement),
            Self::IfcEnergyConversionDeviceType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcEngine => Some(Self::IfcEnergyConversionDevice),
            Self::IfcEngineType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcEvaporativeCooler => Some(Self::IfcEnergyConversionDevice),
            Self::IfcEvaporativeCoolerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcEvaporator => Some(Self::IfcEnergyConversionDevice),
            Self::IfcEvaporatorType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcEvent => Some(Self::IfcProcess),
            Self::IfcEventTime => Some(Self::IfcSchedulingTime),
            Self::IfcEventType => Some(Self::IfcTypeProcess),
            Self::IfcExtendedProperties => Some(Self::IfcPropertyAbstraction),
            Self::IfcExternalReferenceRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcExternalSpatialElement => Some(Self::IfcExternalSpatialStructureElement),
            Self::IfcExternalSpatialStructureElement => Some(Self::IfcSpatialElement),
            Self::IfcExternallyDefinedHatchStyle => Some(Self::IfcExternalReference),
            Self::IfcExternallyDefinedSurfaceStyle => Some(Self::IfcExternalReference),
            Self::IfcExternallyDefinedTextFont => Some(Self::IfcExternalReference),
            Self::IfcExtrudedAreaSolid => Some(Self::IfcSweptAreaSolid),
            Self::IfcExtrudedAreaSolidTapered => Some(Self::IfcExtrudedAreaSolid),
            Self::IfcFace => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcFaceBasedSurfaceModel => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcFaceBound => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcFaceOuterBound => Some(Self::IfcFaceBound),
            Self::IfcFaceSurface => Some(Self::IfcFace),
            Self::IfcFacetedBrep => Some(Self::IfcManifoldSolidBrep),
            Self::IfcFacetedBrepWithVoids => Some(Self::IfcFacetedBrep),
            Self::IfcFacility => Some(Self::IfcSpatialStructureElement),
            Self::IfcFacilityPart => Some(Self::IfcSpatialStructureElement),
            Self::IfcFacilityPartCommon => Some(Self::IfcFacilityPart),
            Self::IfcFailureConnectionCondition => Some(Self::IfcStructuralConnectionCondition),
            Self::IfcFan => Some(Self::IfcFlowMovingDevice),
            Self::IfcFanType => Some(Self::IfcFlowMovingDeviceType),
            Self::IfcFastener => Some(Self::IfcElementComponent),
            Self::IfcFastenerType => Some(Self::IfcElementComponentType),
            Self::IfcFeatureElement => Some(Self::IfcElement),
            Self::IfcFeatureElementAddition => Some(Self::IfcFeatureElement),
            Self::IfcFeatureElementSubtraction => Some(Self::IfcFeatureElement),
            Self::IfcFillAreaStyle => Some(Self::IfcPresentationStyle),
            Self::IfcFillAreaStyleHatching => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcFillAreaStyleTiles => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcFilter => Some(Self::IfcFlowTreatmentDevice),
            Self::IfcFilterType => Some(Self::IfcFlowTreatmentDeviceType),
            Self::IfcFireSuppressionTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcFireSuppressionTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcFixedReferenceSweptAreaSolid => Some(Self::IfcDirectrixCurveSweptAreaSolid),
            Self::IfcFlowController => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowControllerType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowFitting => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowFittingType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowInstrument => Some(Self::IfcDistributionControlElement),
            Self::IfcFlowInstrumentType => Some(Self::IfcDistributionControlElementType),
            Self::IfcFlowMeter => Some(Self::IfcFlowController),
            Self::IfcFlowMeterType => Some(Self::IfcFlowControllerType),
            Self::IfcFlowMovingDevice => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowMovingDeviceType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowSegment => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowSegmentType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowStorageDevice => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowStorageDeviceType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowTerminal => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowTerminalType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFlowTreatmentDevice => Some(Self::IfcDistributionFlowElement),
            Self::IfcFlowTreatmentDeviceType => Some(Self::IfcDistributionFlowElementType),
            Self::IfcFooting => Some(Self::IfcBuiltElement),
            Self::IfcFootingType => Some(Self::IfcBuiltElementType),
            Self::IfcFurnishingElement => Some(Self::IfcElement),
            Self::IfcFurnishingElementType => Some(Self::IfcElementType),
            Self::IfcFurniture => Some(Self::IfcFurnishingElement),
            Self::IfcFurnitureType => Some(Self::IfcFurnishingElementType),
            Self::IfcGeographicCRS => Some(Self::IfcCoordinateReferenceSystem),
            Self::IfcGeographicElement => Some(Self::IfcElement),
            Self::IfcGeographicElementType => Some(Self::IfcElementType),
            Self::IfcGeometricCurveSet => Some(Self::IfcGeometricSet),
            Self::IfcGeometricRepresentationContext => Some(Self::IfcRepresentationContext),
            Self::IfcGeometricRepresentationItem => Some(Self::IfcRepresentationItem),
            Self::IfcGeometricRepresentationSubContext => {
                Some(Self::IfcGeometricRepresentationContext)
            }
            Self::IfcGeometricSet => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcGeomodel => Some(Self::IfcGeotechnicalAssembly),
            Self::IfcGeoslice => Some(Self::IfcGeotechnicalAssembly),
            Self::IfcGeotechnicalAssembly => Some(Self::IfcGeotechnicalElement),
            Self::IfcGeotechnicalElement => Some(Self::IfcElement),
            Self::IfcGeotechnicalStratum => Some(Self::IfcGeotechnicalElement),
            Self::IfcGradientCurve => Some(Self::IfcCompositeCurve),
            Self::IfcGrid => Some(Self::IfcPositioningElement),
            Self::IfcGridPlacement => Some(Self::IfcObjectPlacement),
            Self::IfcGroup => Some(Self::IfcObject),
            Self::IfcHalfSpaceSolid => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcHeatExchanger => Some(Self::IfcEnergyConversionDevice),
            Self::IfcHeatExchangerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcHumidifier => Some(Self::IfcEnergyConversionDevice),
            Self::IfcHumidifierType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcIShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcImageTexture => Some(Self::IfcSurfaceTexture),
            Self::IfcImpactProtectionDevice => Some(Self::IfcElementComponent),
            Self::IfcImpactProtectionDeviceType => Some(Self::IfcElementComponentType),
            Self::IfcIndexedColourMap => Some(Self::IfcPresentationItem),
            Self::IfcIndexedPolyCurve => Some(Self::IfcBoundedCurve),
            Self::IfcIndexedPolygonalFace => Some(Self::IfcTessellatedItem),
            Self::IfcIndexedPolygonalFaceWithVoids => Some(Self::IfcIndexedPolygonalFace),
            Self::IfcIndexedPolygonalTextureMap => Some(Self::IfcIndexedTextureMap),
            Self::IfcIndexedTextureMap => Some(Self::IfcTextureCoordinate),
            Self::IfcIndexedTriangleTextureMap => Some(Self::IfcIndexedTextureMap),
            Self::IfcInterceptor => Some(Self::IfcFlowTreatmentDevice),
            Self::IfcInterceptorType => Some(Self::IfcFlowTreatmentDeviceType),
            Self::IfcIntersectionCurve => Some(Self::IfcSurfaceCurve),
            Self::IfcInventory => Some(Self::IfcGroup),
            Self::IfcIrregularTimeSeries => Some(Self::IfcTimeSeries),
            Self::IfcJunctionBox => Some(Self::IfcFlowFitting),
            Self::IfcJunctionBoxType => Some(Self::IfcFlowFittingType),
            Self::IfcKerb => Some(Self::IfcBuiltElement),
            Self::IfcKerbType => Some(Self::IfcBuiltElementType),
            Self::IfcLShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcLaborResource => Some(Self::IfcConstructionResource),
            Self::IfcLaborResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcLagTime => Some(Self::IfcSchedulingTime),
            Self::IfcLamp => Some(Self::IfcFlowTerminal),
            Self::IfcLampType => Some(Self::IfcFlowTerminalType),
            Self::IfcLibraryInformation => Some(Self::IfcExternalInformation),
            Self::IfcLibraryReference => Some(Self::IfcExternalReference),
            Self::IfcLightFixture => Some(Self::IfcFlowTerminal),
            Self::IfcLightFixtureType => Some(Self::IfcFlowTerminalType),
            Self::IfcLightSource => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcLightSourceAmbient => Some(Self::IfcLightSource),
            Self::IfcLightSourceDirectional => Some(Self::IfcLightSource),
            Self::IfcLightSourceGoniometric => Some(Self::IfcLightSource),
            Self::IfcLightSourcePositional => Some(Self::IfcLightSource),
            Self::IfcLightSourceSpot => Some(Self::IfcLightSourcePositional),
            Self::IfcLine => Some(Self::IfcCurve),
            Self::IfcLinearElement => Some(Self::IfcProduct),
            Self::IfcLinearPlacement => Some(Self::IfcObjectPlacement),
            Self::IfcLinearPositioningElement => Some(Self::IfcPositioningElement),
            Self::IfcLiquidTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcLiquidTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcLocalPlacement => Some(Self::IfcObjectPlacement),
            Self::IfcLoop => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcManifoldSolidBrep => Some(Self::IfcSolidModel),
            Self::IfcMapConversion => Some(Self::IfcCoordinateOperation),
            Self::IfcMapConversionScaled => Some(Self::IfcMapConversion),
            Self::IfcMappedItem => Some(Self::IfcRepresentationItem),
            Self::IfcMarineFacility => Some(Self::IfcFacility),
            Self::IfcMarinePart => Some(Self::IfcFacilityPart),
            Self::IfcMaterial => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialConstituent => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialConstituentSet => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialDefinitionRepresentation => Some(Self::IfcProductRepresentation),
            Self::IfcMaterialLayer => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialLayerSet => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialLayerSetUsage => Some(Self::IfcMaterialUsageDefinition),
            Self::IfcMaterialLayerWithOffsets => Some(Self::IfcMaterialLayer),
            Self::IfcMaterialProfile => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialProfileSet => Some(Self::IfcMaterialDefinition),
            Self::IfcMaterialProfileSetUsage => Some(Self::IfcMaterialUsageDefinition),
            Self::IfcMaterialProfileSetUsageTapering => Some(Self::IfcMaterialProfileSetUsage),
            Self::IfcMaterialProfileWithOffsets => Some(Self::IfcMaterialProfile),
            Self::IfcMaterialProperties => Some(Self::IfcExtendedProperties),
            Self::IfcMaterialRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcMechanicalFastener => Some(Self::IfcElementComponent),
            Self::IfcMechanicalFastenerType => Some(Self::IfcElementComponentType),
            Self::IfcMedicalDevice => Some(Self::IfcFlowTerminal),
            Self::IfcMedicalDeviceType => Some(Self::IfcFlowTerminalType),
            Self::IfcMember => Some(Self::IfcBuiltElement),
            Self::IfcMemberType => Some(Self::IfcBuiltElementType),
            Self::IfcMetric => Some(Self::IfcConstraint),
            Self::IfcMirroredProfileDef => Some(Self::IfcDerivedProfileDef),
            Self::IfcMobileTelecommunicationsAppliance => Some(Self::IfcFlowTerminal),
            Self::IfcMobileTelecommunicationsApplianceType => Some(Self::IfcFlowTerminalType),
            Self::IfcMooringDevice => Some(Self::IfcBuiltElement),
            Self::IfcMooringDeviceType => Some(Self::IfcBuiltElementType),
            Self::IfcMotorConnection => Some(Self::IfcEnergyConversionDevice),
            Self::IfcMotorConnectionType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcNavigationElement => Some(Self::IfcBuiltElement),
            Self::IfcNavigationElementType => Some(Self::IfcBuiltElementType),
            Self::IfcObject => Some(Self::IfcObjectDefinition),
            Self::IfcObjectDefinition => Some(Self::IfcRoot),
            Self::IfcObjective => Some(Self::IfcConstraint),
            Self::IfcOccupant => Some(Self::IfcActor),
            Self::IfcOffsetCurve => Some(Self::IfcCurve),
            Self::IfcOffsetCurve2D => Some(Self::IfcOffsetCurve),
            Self::IfcOffsetCurve3D => Some(Self::IfcOffsetCurve),
            Self::IfcOffsetCurveByDistances => Some(Self::IfcOffsetCurve),
            Self::IfcOpenCrossProfileDef => Some(Self::IfcProfileDef),
            Self::IfcOpenShell => Some(Self::IfcConnectedFaceSet),
            Self::IfcOpeningElement => Some(Self::IfcFeatureElementSubtraction),
            Self::IfcOrganizationRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcOrientedEdge => Some(Self::IfcEdge),
            Self::IfcOuterBoundaryCurve => Some(Self::IfcBoundaryCurve),
            Self::IfcOutlet => Some(Self::IfcFlowTerminal),
            Self::IfcOutletType => Some(Self::IfcFlowTerminalType),
            Self::IfcParameterizedProfileDef => Some(Self::IfcProfileDef),
            Self::IfcPath => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcPavement => Some(Self::IfcBuiltElement),
            Self::IfcPavementType => Some(Self::IfcBuiltElementType),
            Self::IfcPcurve => Some(Self::IfcCurve),
            Self::IfcPerformanceHistory => Some(Self::IfcControl),
            Self::IfcPermeableCoveringProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcPermit => Some(Self::IfcControl),
            Self::IfcPhysicalComplexQuantity => Some(Self::IfcPhysicalQuantity),
            Self::IfcPhysicalSimpleQuantity => Some(Self::IfcPhysicalQuantity),
            Self::IfcPile => Some(Self::IfcDeepFoundation),
            Self::IfcPileType => Some(Self::IfcDeepFoundationType),
            Self::IfcPipeFitting => Some(Self::IfcFlowFitting),
            Self::IfcPipeFittingType => Some(Self::IfcFlowFittingType),
            Self::IfcPipeSegment => Some(Self::IfcFlowSegment),
            Self::IfcPipeSegmentType => Some(Self::IfcFlowSegmentType),
            Self::IfcPixelTexture => Some(Self::IfcSurfaceTexture),
            Self::IfcPlacement => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcPlanarBox => Some(Self::IfcPlanarExtent),
            Self::IfcPlanarExtent => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcPlane => Some(Self::IfcElementarySurface),
            Self::IfcPlate => Some(Self::IfcBuiltElement),
            Self::IfcPlateType => Some(Self::IfcBuiltElementType),
            Self::IfcPoint => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcPointByDistanceExpression => Some(Self::IfcPoint),
            Self::IfcPointOnCurve => Some(Self::IfcPoint),
            Self::IfcPointOnSurface => Some(Self::IfcPoint),
            Self::IfcPolyLoop => Some(Self::IfcLoop),
            Self::IfcPolygonalBoundedHalfSpace => Some(Self::IfcHalfSpaceSolid),
            Self::IfcPolygonalFaceSet => Some(Self::IfcTessellatedFaceSet),
            Self::IfcPolyline => Some(Self::IfcBoundedCurve),
            Self::IfcPolynomialCurve => Some(Self::IfcCurve),
            Self::IfcPort => Some(Self::IfcProduct),
            Self::IfcPositioningElement => Some(Self::IfcProduct),
            Self::IfcPostalAddress => Some(Self::IfcAddress),
            Self::IfcPreDefinedColour => Some(Self::IfcPreDefinedItem),
            Self::IfcPreDefinedCurveFont => Some(Self::IfcPreDefinedItem),
            Self::IfcPreDefinedItem => Some(Self::IfcPresentationItem),
            Self::IfcPreDefinedProperties => Some(Self::IfcPropertyAbstraction),
            Self::IfcPreDefinedPropertySet => Some(Self::IfcPropertySetDefinition),
            Self::IfcPreDefinedTextFont => Some(Self::IfcPreDefinedItem),
            Self::IfcPresentationLayerWithStyle => Some(Self::IfcPresentationLayerAssignment),
            Self::IfcProcedure => Some(Self::IfcProcess),
            Self::IfcProcedureType => Some(Self::IfcTypeProcess),
            Self::IfcProcess => Some(Self::IfcObject),
            Self::IfcProduct => Some(Self::IfcObject),
            Self::IfcProductDefinitionShape => Some(Self::IfcProductRepresentation),
            Self::IfcProfileProperties => Some(Self::IfcExtendedProperties),
            Self::IfcProject => Some(Self::IfcContext),
            Self::IfcProjectLibrary => Some(Self::IfcContext),
            Self::IfcProjectOrder => Some(Self::IfcControl),
            Self::IfcProjectedCRS => Some(Self::IfcCoordinateReferenceSystem),
            Self::IfcProjectionElement => Some(Self::IfcFeatureElementAddition),
            Self::IfcProperty => Some(Self::IfcPropertyAbstraction),
            Self::IfcPropertyBoundedValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertyDefinition => Some(Self::IfcRoot),
            Self::IfcPropertyDependencyRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcPropertyEnumeratedValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertyEnumeration => Some(Self::IfcPropertyAbstraction),
            Self::IfcPropertyListValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertyReferenceValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertySet => Some(Self::IfcPropertySetDefinition),
            Self::IfcPropertySetDefinition => Some(Self::IfcPropertyDefinition),
            Self::IfcPropertySetTemplate => Some(Self::IfcPropertyTemplateDefinition),
            Self::IfcPropertySingleValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertyTableValue => Some(Self::IfcSimpleProperty),
            Self::IfcPropertyTemplate => Some(Self::IfcPropertyTemplateDefinition),
            Self::IfcPropertyTemplateDefinition => Some(Self::IfcPropertyDefinition),
            Self::IfcProtectiveDevice => Some(Self::IfcFlowController),
            Self::IfcProtectiveDeviceTrippingUnit => Some(Self::IfcDistributionControlElement),
            Self::IfcProtectiveDeviceTrippingUnitType => {
                Some(Self::IfcDistributionControlElementType)
            }
            Self::IfcProtectiveDeviceType => Some(Self::IfcFlowControllerType),
            Self::IfcPump => Some(Self::IfcFlowMovingDevice),
            Self::IfcPumpType => Some(Self::IfcFlowMovingDeviceType),
            Self::IfcQuantityArea => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantityCount => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantityLength => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantityNumber => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantitySet => Some(Self::IfcPropertySetDefinition),
            Self::IfcQuantityTime => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantityVolume => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcQuantityWeight => Some(Self::IfcPhysicalSimpleQuantity),
            Self::IfcRail => Some(Self::IfcBuiltElement),
            Self::IfcRailType => Some(Self::IfcBuiltElementType),
            Self::IfcRailing => Some(Self::IfcBuiltElement),
            Self::IfcRailingType => Some(Self::IfcBuiltElementType),
            Self::IfcRailway => Some(Self::IfcFacility),
            Self::IfcRailwayPart => Some(Self::IfcFacilityPart),
            Self::IfcRamp => Some(Self::IfcBuiltElement),
            Self::IfcRampFlight => Some(Self::IfcBuiltElement),
            Self::IfcRampFlightType => Some(Self::IfcBuiltElementType),
            Self::IfcRampType => Some(Self::IfcBuiltElementType),
            Self::IfcRationalBSplineCurveWithKnots => Some(Self::IfcBSplineCurveWithKnots),
            Self::IfcRationalBSplineSurfaceWithKnots => Some(Self::IfcBSplineSurfaceWithKnots),
            Self::IfcRectangleHollowProfileDef => Some(Self::IfcRectangleProfileDef),
            Self::IfcRectangleProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcRectangularPyramid => Some(Self::IfcCsgPrimitive3D),
            Self::IfcRectangularTrimmedSurface => Some(Self::IfcBoundedSurface),
            Self::IfcReferent => Some(Self::IfcPositioningElement),
            Self::IfcRegularTimeSeries => Some(Self::IfcTimeSeries),
            Self::IfcReinforcedSoil => Some(Self::IfcEarthworksElement),
            Self::IfcReinforcementBarProperties => Some(Self::IfcPreDefinedProperties),
            Self::IfcReinforcementDefinitionProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcReinforcingBar => Some(Self::IfcReinforcingElement),
            Self::IfcReinforcingBarType => Some(Self::IfcReinforcingElementType),
            Self::IfcReinforcingElement => Some(Self::IfcElementComponent),
            Self::IfcReinforcingElementType => Some(Self::IfcElementComponentType),
            Self::IfcReinforcingMesh => Some(Self::IfcReinforcingElement),
            Self::IfcReinforcingMeshType => Some(Self::IfcReinforcingElementType),
            Self::IfcRelAdheresToElement => Some(Self::IfcRelDecomposes),
            Self::IfcRelAggregates => Some(Self::IfcRelDecomposes),
            Self::IfcRelAssigns => Some(Self::IfcRelationship),
            Self::IfcRelAssignsToActor => Some(Self::IfcRelAssigns),
            Self::IfcRelAssignsToControl => Some(Self::IfcRelAssigns),
            Self::IfcRelAssignsToGroup => Some(Self::IfcRelAssigns),
            Self::IfcRelAssignsToGroupByFactor => Some(Self::IfcRelAssignsToGroup),
            Self::IfcRelAssignsToProcess => Some(Self::IfcRelAssigns),
            Self::IfcRelAssignsToProduct => Some(Self::IfcRelAssigns),
            Self::IfcRelAssignsToResource => Some(Self::IfcRelAssigns),
            Self::IfcRelAssociates => Some(Self::IfcRelationship),
            Self::IfcRelAssociatesApproval => Some(Self::IfcRelAssociates),
            Self::IfcRelAssociatesClassification => Some(Self::IfcRelAssociates),
            Self::IfcRelAssociatesConstraint => Some(Self::IfcRelAssociates),
            Self::IfcRelAssociatesDocument => Some(Self::IfcRelAssociates),
            Self::IfcRelAssociatesLibrary => Some(Self::IfcRelAssociates),
            Self::IfcRelAssociatesMaterial => Some(Self::IfcRelAssociates),
            Self::IfcRelAssociatesProfileDef => Some(Self::IfcRelAssociates),
            Self::IfcRelConnects => Some(Self::IfcRelationship),
            Self::IfcRelConnectsElements => Some(Self::IfcRelConnects),
            Self::IfcRelConnectsPathElements => Some(Self::IfcRelConnectsElements),
            Self::IfcRelConnectsPortToElement => Some(Self::IfcRelConnects),
            Self::IfcRelConnectsPorts => Some(Self::IfcRelConnects),
            Self::IfcRelConnectsStructuralActivity => Some(Self::IfcRelConnects),
            Self::IfcRelConnectsStructuralMember => Some(Self::IfcRelConnects),
            Self::IfcRelConnectsWithEccentricity => Some(Self::IfcRelConnectsStructuralMember),
            Self::IfcRelConnectsWithRealizingElements => Some(Self::IfcRelConnectsElements),
            Self::IfcRelContainedInSpatialStructure => Some(Self::IfcRelConnects),
            Self::IfcRelCoversBldgElements => Some(Self::IfcRelConnects),
            Self::IfcRelCoversSpaces => Some(Self::IfcRelConnects),
            Self::IfcRelDeclares => Some(Self::IfcRelationship),
            Self::IfcRelDecomposes => Some(Self::IfcRelationship),
            Self::IfcRelDefines => Some(Self::IfcRelationship),
            Self::IfcRelDefinesByObject => Some(Self::IfcRelDefines),
            Self::IfcRelDefinesByProperties => Some(Self::IfcRelDefines),
            Self::IfcRelDefinesByTemplate => Some(Self::IfcRelDefines),
            Self::IfcRelDefinesByType => Some(Self::IfcRelDefines),
            Self::IfcRelFillsElement => Some(Self::IfcRelConnects),
            Self::IfcRelFlowControlElements => Some(Self::IfcRelConnects),
            Self::IfcRelInterferesElements => Some(Self::IfcRelConnects),
            Self::IfcRelNests => Some(Self::IfcRelDecomposes),
            Self::IfcRelPositions => Some(Self::IfcRelConnects),
            Self::IfcRelProjectsElement => Some(Self::IfcRelDecomposes),
            Self::IfcRelReferencedInSpatialStructure => Some(Self::IfcRelConnects),
            Self::IfcRelSequence => Some(Self::IfcRelConnects),
            Self::IfcRelServicesBuildings => Some(Self::IfcRelConnects),
            Self::IfcRelSpaceBoundary => Some(Self::IfcRelConnects),
            Self::IfcRelSpaceBoundary1stLevel => Some(Self::IfcRelSpaceBoundary),
            Self::IfcRelSpaceBoundary2ndLevel => Some(Self::IfcRelSpaceBoundary1stLevel),
            Self::IfcRelVoidsElement => Some(Self::IfcRelDecomposes),
            Self::IfcRelationship => Some(Self::IfcRoot),
            Self::IfcReparametrisedCompositeCurveSegment => Some(Self::IfcCompositeCurveSegment),
            Self::IfcResource => Some(Self::IfcObject),
            Self::IfcResourceApprovalRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcResourceConstraintRelationship => Some(Self::IfcResourceLevelRelationship),
            Self::IfcResourceTime => Some(Self::IfcSchedulingTime),
            Self::IfcRevolvedAreaSolid => Some(Self::IfcSweptAreaSolid),
            Self::IfcRevolvedAreaSolidTapered => Some(Self::IfcRevolvedAreaSolid),
            Self::IfcRightCircularCone => Some(Self::IfcCsgPrimitive3D),
            Self::IfcRightCircularCylinder => Some(Self::IfcCsgPrimitive3D),
            Self::IfcRigidOperation => Some(Self::IfcCoordinateOperation),
            Self::IfcRoad => Some(Self::IfcFacility),
            Self::IfcRoadPart => Some(Self::IfcFacilityPart),
            Self::IfcRoof => Some(Self::IfcBuiltElement),
            Self::IfcRoofType => Some(Self::IfcBuiltElementType),
            Self::IfcRoundedRectangleProfileDef => Some(Self::IfcRectangleProfileDef),
            Self::IfcSIUnit => Some(Self::IfcNamedUnit),
            Self::IfcSanitaryTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcSanitaryTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcSeamCurve => Some(Self::IfcSurfaceCurve),
            Self::IfcSecondOrderPolynomialSpiral => Some(Self::IfcSpiral),
            Self::IfcSectionProperties => Some(Self::IfcPreDefinedProperties),
            Self::IfcSectionReinforcementProperties => Some(Self::IfcPreDefinedProperties),
            Self::IfcSectionedSolid => Some(Self::IfcSolidModel),
            Self::IfcSectionedSolidHorizontal => Some(Self::IfcSectionedSolid),
            Self::IfcSectionedSpine => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcSectionedSurface => Some(Self::IfcSurface),
            Self::IfcSegment => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcSegmentedReferenceCurve => Some(Self::IfcCompositeCurve),
            Self::IfcSensor => Some(Self::IfcDistributionControlElement),
            Self::IfcSensorType => Some(Self::IfcDistributionControlElementType),
            Self::IfcSeventhOrderPolynomialSpiral => Some(Self::IfcSpiral),
            Self::IfcShadingDevice => Some(Self::IfcBuiltElement),
            Self::IfcShadingDeviceType => Some(Self::IfcBuiltElementType),
            Self::IfcShapeModel => Some(Self::IfcRepresentation),
            Self::IfcShapeRepresentation => Some(Self::IfcShapeModel),
            Self::IfcShellBasedSurfaceModel => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcSign => Some(Self::IfcElementComponent),
            Self::IfcSignType => Some(Self::IfcElementComponentType),
            Self::IfcSignal => Some(Self::IfcFlowTerminal),
            Self::IfcSignalType => Some(Self::IfcFlowTerminalType),
            Self::IfcSimpleProperty => Some(Self::IfcProperty),
            Self::IfcSimplePropertyTemplate => Some(Self::IfcPropertyTemplate),
            Self::IfcSineSpiral => Some(Self::IfcSpiral),
            Self::IfcSite => Some(Self::IfcSpatialStructureElement),
            Self::IfcSlab => Some(Self::IfcBuiltElement),
            Self::IfcSlabType => Some(Self::IfcBuiltElementType),
            Self::IfcSlippageConnectionCondition => Some(Self::IfcStructuralConnectionCondition),
            Self::IfcSolarDevice => Some(Self::IfcEnergyConversionDevice),
            Self::IfcSolarDeviceType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcSolidModel => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcSpace => Some(Self::IfcSpatialStructureElement),
            Self::IfcSpaceHeater => Some(Self::IfcFlowTerminal),
            Self::IfcSpaceHeaterType => Some(Self::IfcFlowTerminalType),
            Self::IfcSpaceType => Some(Self::IfcSpatialStructureElementType),
            Self::IfcSpatialElement => Some(Self::IfcProduct),
            Self::IfcSpatialElementType => Some(Self::IfcTypeProduct),
            Self::IfcSpatialStructureElement => Some(Self::IfcSpatialElement),
            Self::IfcSpatialStructureElementType => Some(Self::IfcSpatialElementType),
            Self::IfcSpatialZone => Some(Self::IfcSpatialElement),
            Self::IfcSpatialZoneType => Some(Self::IfcSpatialElementType),
            Self::IfcSphere => Some(Self::IfcCsgPrimitive3D),
            Self::IfcSphericalSurface => Some(Self::IfcElementarySurface),
            Self::IfcSpiral => Some(Self::IfcCurve),
            Self::IfcStackTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcStackTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcStair => Some(Self::IfcBuiltElement),
            Self::IfcStairFlight => Some(Self::IfcBuiltElement),
            Self::IfcStairFlightType => Some(Self::IfcBuiltElementType),
            Self::IfcStairType => Some(Self::IfcBuiltElementType),
            Self::IfcStructuralAction => Some(Self::IfcStructuralActivity),
            Self::IfcStructuralActivity => Some(Self::IfcProduct),
            Self::IfcStructuralAnalysisModel => Some(Self::IfcSystem),
            Self::IfcStructuralConnection => Some(Self::IfcStructuralItem),
            Self::IfcStructuralCurveAction => Some(Self::IfcStructuralAction),
            Self::IfcStructuralCurveConnection => Some(Self::IfcStructuralConnection),
            Self::IfcStructuralCurveMember => Some(Self::IfcStructuralMember),
            Self::IfcStructuralCurveMemberVarying => Some(Self::IfcStructuralCurveMember),
            Self::IfcStructuralCurveReaction => Some(Self::IfcStructuralReaction),
            Self::IfcStructuralItem => Some(Self::IfcProduct),
            Self::IfcStructuralLinearAction => Some(Self::IfcStructuralCurveAction),
            Self::IfcStructuralLoadCase => Some(Self::IfcStructuralLoadGroup),
            Self::IfcStructuralLoadConfiguration => Some(Self::IfcStructuralLoad),
            Self::IfcStructuralLoadGroup => Some(Self::IfcGroup),
            Self::IfcStructuralLoadLinearForce => Some(Self::IfcStructuralLoadStatic),
            Self::IfcStructuralLoadOrResult => Some(Self::IfcStructuralLoad),
            Self::IfcStructuralLoadPlanarForce => Some(Self::IfcStructuralLoadStatic),
            Self::IfcStructuralLoadSingleDisplacement => Some(Self::IfcStructuralLoadStatic),
            Self::IfcStructuralLoadSingleDisplacementDistortion => {
                Some(Self::IfcStructuralLoadSingleDisplacement)
            }
            Self::IfcStructuralLoadSingleForce => Some(Self::IfcStructuralLoadStatic),
            Self::IfcStructuralLoadSingleForceWarping => Some(Self::IfcStructuralLoadSingleForce),
            Self::IfcStructuralLoadStatic => Some(Self::IfcStructuralLoadOrResult),
            Self::IfcStructuralLoadTemperature => Some(Self::IfcStructuralLoadStatic),
            Self::IfcStructuralMember => Some(Self::IfcStructuralItem),
            Self::IfcStructuralPlanarAction => Some(Self::IfcStructuralSurfaceAction),
            Self::IfcStructuralPointAction => Some(Self::IfcStructuralAction),
            Self::IfcStructuralPointConnection => Some(Self::IfcStructuralConnection),
            Self::IfcStructuralPointReaction => Some(Self::IfcStructuralReaction),
            Self::IfcStructuralReaction => Some(Self::IfcStructuralActivity),
            Self::IfcStructuralResultGroup => Some(Self::IfcGroup),
            Self::IfcStructuralSurfaceAction => Some(Self::IfcStructuralAction),
            Self::IfcStructuralSurfaceConnection => Some(Self::IfcStructuralConnection),
            Self::IfcStructuralSurfaceMember => Some(Self::IfcStructuralMember),
            Self::IfcStructuralSurfaceMemberVarying => Some(Self::IfcStructuralSurfaceMember),
            Self::IfcStructuralSurfaceReaction => Some(Self::IfcStructuralReaction),
            Self::IfcStyleModel => Some(Self::IfcRepresentation),
            Self::IfcStyledItem => Some(Self::IfcRepresentationItem),
            Self::IfcStyledRepresentation => Some(Self::IfcStyleModel),
            Self::IfcSubContractResource => Some(Self::IfcConstructionResource),
            Self::IfcSubContractResourceType => Some(Self::IfcConstructionResourceType),
            Self::IfcSubedge => Some(Self::IfcEdge),
            Self::IfcSurface => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcSurfaceCurve => Some(Self::IfcCurve),
            Self::IfcSurfaceCurveSweptAreaSolid => Some(Self::IfcDirectrixCurveSweptAreaSolid),
            Self::IfcSurfaceFeature => Some(Self::IfcFeatureElement),
            Self::IfcSurfaceOfLinearExtrusion => Some(Self::IfcSweptSurface),
            Self::IfcSurfaceOfRevolution => Some(Self::IfcSweptSurface),
            Self::IfcSurfaceReinforcementArea => Some(Self::IfcStructuralLoadOrResult),
            Self::IfcSurfaceStyle => Some(Self::IfcPresentationStyle),
            Self::IfcSurfaceStyleLighting => Some(Self::IfcPresentationItem),
            Self::IfcSurfaceStyleRefraction => Some(Self::IfcPresentationItem),
            Self::IfcSurfaceStyleRendering => Some(Self::IfcSurfaceStyleShading),
            Self::IfcSurfaceStyleShading => Some(Self::IfcPresentationItem),
            Self::IfcSurfaceStyleWithTextures => Some(Self::IfcPresentationItem),
            Self::IfcSurfaceTexture => Some(Self::IfcPresentationItem),
            Self::IfcSweptAreaSolid => Some(Self::IfcSolidModel),
            Self::IfcSweptDiskSolid => Some(Self::IfcSolidModel),
            Self::IfcSweptDiskSolidPolygonal => Some(Self::IfcSweptDiskSolid),
            Self::IfcSweptSurface => Some(Self::IfcSurface),
            Self::IfcSwitchingDevice => Some(Self::IfcFlowController),
            Self::IfcSwitchingDeviceType => Some(Self::IfcFlowControllerType),
            Self::IfcSystem => Some(Self::IfcGroup),
            Self::IfcSystemFurnitureElement => Some(Self::IfcFurnishingElement),
            Self::IfcSystemFurnitureElementType => Some(Self::IfcFurnishingElementType),
            Self::IfcTShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcTank => Some(Self::IfcFlowStorageDevice),
            Self::IfcTankType => Some(Self::IfcFlowStorageDeviceType),
            Self::IfcTask => Some(Self::IfcProcess),
            Self::IfcTaskTime => Some(Self::IfcSchedulingTime),
            Self::IfcTaskTimeRecurring => Some(Self::IfcTaskTime),
            Self::IfcTaskType => Some(Self::IfcTypeProcess),
            Self::IfcTelecomAddress => Some(Self::IfcAddress),
            Self::IfcTendon => Some(Self::IfcReinforcingElement),
            Self::IfcTendonAnchor => Some(Self::IfcReinforcingElement),
            Self::IfcTendonAnchorType => Some(Self::IfcReinforcingElementType),
            Self::IfcTendonConduit => Some(Self::IfcReinforcingElement),
            Self::IfcTendonConduitType => Some(Self::IfcReinforcingElementType),
            Self::IfcTendonType => Some(Self::IfcReinforcingElementType),
            Self::IfcTessellatedFaceSet => Some(Self::IfcTessellatedItem),
            Self::IfcTessellatedItem => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcTextLiteral => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcTextLiteralWithExtent => Some(Self::IfcTextLiteral),
            Self::IfcTextStyle => Some(Self::IfcPresentationStyle),
            Self::IfcTextStyleFontModel => Some(Self::IfcPreDefinedTextFont),
            Self::IfcTextStyleForDefinedFont => Some(Self::IfcPresentationItem),
            Self::IfcTextStyleTextModel => Some(Self::IfcPresentationItem),
            Self::IfcTextureCoordinate => Some(Self::IfcPresentationItem),
            Self::IfcTextureCoordinateGenerator => Some(Self::IfcTextureCoordinate),
            Self::IfcTextureCoordinateIndicesWithVoids => Some(Self::IfcTextureCoordinateIndices),
            Self::IfcTextureMap => Some(Self::IfcTextureCoordinate),
            Self::IfcTextureVertex => Some(Self::IfcPresentationItem),
            Self::IfcTextureVertexList => Some(Self::IfcPresentationItem),
            Self::IfcThirdOrderPolynomialSpiral => Some(Self::IfcSpiral),
            Self::IfcTopologicalRepresentationItem => Some(Self::IfcRepresentationItem),
            Self::IfcTopologyRepresentation => Some(Self::IfcShapeModel),
            Self::IfcToroidalSurface => Some(Self::IfcElementarySurface),
            Self::IfcTrackElement => Some(Self::IfcBuiltElement),
            Self::IfcTrackElementType => Some(Self::IfcBuiltElementType),
            Self::IfcTransformer => Some(Self::IfcEnergyConversionDevice),
            Self::IfcTransformerType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcTransportElement => Some(Self::IfcTransportationDevice),
            Self::IfcTransportElementType => Some(Self::IfcTransportationDeviceType),
            Self::IfcTransportationDevice => Some(Self::IfcElement),
            Self::IfcTransportationDeviceType => Some(Self::IfcElementType),
            Self::IfcTrapeziumProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcTriangulatedFaceSet => Some(Self::IfcTessellatedFaceSet),
            Self::IfcTriangulatedIrregularNetwork => Some(Self::IfcTriangulatedFaceSet),
            Self::IfcTrimmedCurve => Some(Self::IfcBoundedCurve),
            Self::IfcTubeBundle => Some(Self::IfcEnergyConversionDevice),
            Self::IfcTubeBundleType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcTypeObject => Some(Self::IfcObjectDefinition),
            Self::IfcTypeProcess => Some(Self::IfcTypeObject),
            Self::IfcTypeProduct => Some(Self::IfcTypeObject),
            Self::IfcTypeResource => Some(Self::IfcTypeObject),
            Self::IfcUShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcUnitaryControlElement => Some(Self::IfcDistributionControlElement),
            Self::IfcUnitaryControlElementType => Some(Self::IfcDistributionControlElementType),
            Self::IfcUnitaryEquipment => Some(Self::IfcEnergyConversionDevice),
            Self::IfcUnitaryEquipmentType => Some(Self::IfcEnergyConversionDeviceType),
            Self::IfcValve => Some(Self::IfcFlowController),
            Self::IfcValveType => Some(Self::IfcFlowControllerType),
            Self::IfcVector => Some(Self::IfcGeometricRepresentationItem),
            Self::IfcVehicle => Some(Self::IfcTransportationDevice),
            Self::IfcVehicleType => Some(Self::IfcTransportationDeviceType),
            Self::IfcVertex => Some(Self::IfcTopologicalRepresentationItem),
            Self::IfcVertexLoop => Some(Self::IfcLoop),
            Self::IfcVertexPoint => Some(Self::IfcVertex),
            Self::IfcVibrationDamper => Some(Self::IfcElementComponent),
            Self::IfcVibrationDamperType => Some(Self::IfcElementComponentType),
            Self::IfcVibrationIsolator => Some(Self::IfcElementComponent),
            Self::IfcVibrationIsolatorType => Some(Self::IfcElementComponentType),
            Self::IfcVirtualElement => Some(Self::IfcElement),
            Self::IfcVoidingFeature => Some(Self::IfcFeatureElementSubtraction),
            Self::IfcWall => Some(Self::IfcBuiltElement),
            Self::IfcWallStandardCase => Some(Self::IfcWall),
            Self::IfcWallType => Some(Self::IfcBuiltElementType),
            Self::IfcWasteTerminal => Some(Self::IfcFlowTerminal),
            Self::IfcWasteTerminalType => Some(Self::IfcFlowTerminalType),
            Self::IfcWindow => Some(Self::IfcBuiltElement),
            Self::IfcWindowLiningProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcWindowPanelProperties => Some(Self::IfcPreDefinedPropertySet),
            Self::IfcWindowType => Some(Self::IfcBuiltElementType),
            Self::IfcWorkCalendar => Some(Self::IfcControl),
            Self::IfcWorkControl => Some(Self::IfcControl),
            Self::IfcWorkPlan => Some(Self::IfcWorkControl),
            Self::IfcWorkSchedule => Some(Self::IfcWorkControl),
            Self::IfcWorkTime => Some(Self::IfcSchedulingTime),
            Self::IfcZShapeProfileDef => Some(Self::IfcParameterizedProfileDef),
            Self::IfcZone => Some(Self::IfcSystem),
            _ => None,
        }
    }

    /// Check if this type is a subtype of another
    pub fn is_subtype_of(&self, parent: Self) -> bool {
        let mut current = Some(*self);
        while let Some(t) = current {
            if t == parent {
                return true;
            }
            current = t.parent();
        }
        false
    }

    /// Check if this is an abstract type
    #[allow(clippy::match_like_matches_macro)]
    pub fn is_abstract(&self) -> bool {
        match self {
            Self::IfcAddress => true,
            Self::IfcAlignmentParameterSegment => true,
            Self::IfcBSplineCurve => true,
            Self::IfcBSplineSurface => true,
            Self::IfcBoundaryCondition => true,
            Self::IfcBoundedCurve => true,
            Self::IfcBoundedSurface => true,
            Self::IfcCartesianPointList => true,
            Self::IfcCartesianTransformationOperator => true,
            Self::IfcColourSpecification => true,
            Self::IfcConic => true,
            Self::IfcConnectionGeometry => true,
            Self::IfcConstraint => true,
            Self::IfcConstructionResource => true,
            Self::IfcConstructionResourceType => true,
            Self::IfcContext => true,
            Self::IfcControl => true,
            Self::IfcCoordinateOperation => true,
            Self::IfcCoordinateReferenceSystem => true,
            Self::IfcCsgPrimitive3D => true,
            Self::IfcCurve => true,
            Self::IfcDirectrixCurveSweptAreaSolid => true,
            Self::IfcDistributionControlElementType => true,
            Self::IfcDistributionFlowElementType => true,
            Self::IfcElement => true,
            Self::IfcElementComponent => true,
            Self::IfcElementComponentType => true,
            Self::IfcElementType => true,
            Self::IfcElementarySurface => true,
            Self::IfcEnergyConversionDeviceType => true,
            Self::IfcExtendedProperties => true,
            Self::IfcExternalInformation => true,
            Self::IfcExternalReference => true,
            Self::IfcExternalSpatialStructureElement => true,
            Self::IfcFacilityPart => true,
            Self::IfcFeatureElement => true,
            Self::IfcFeatureElementAddition => true,
            Self::IfcFeatureElementSubtraction => true,
            Self::IfcFlowControllerType => true,
            Self::IfcFlowFittingType => true,
            Self::IfcFlowMovingDeviceType => true,
            Self::IfcFlowSegmentType => true,
            Self::IfcFlowStorageDeviceType => true,
            Self::IfcFlowTerminalType => true,
            Self::IfcFlowTreatmentDeviceType => true,
            Self::IfcGeometricRepresentationItem => true,
            Self::IfcGeotechnicalAssembly => true,
            Self::IfcGeotechnicalElement => true,
            Self::IfcIndexedTextureMap => true,
            Self::IfcLightSource => true,
            Self::IfcManifoldSolidBrep => true,
            Self::IfcMaterialDefinition => true,
            Self::IfcMaterialUsageDefinition => true,
            Self::IfcNamedUnit => true,
            Self::IfcObject => true,
            Self::IfcObjectDefinition => true,
            Self::IfcObjectPlacement => true,
            Self::IfcOffsetCurve => true,
            Self::IfcParameterizedProfileDef => true,
            Self::IfcPhysicalQuantity => true,
            Self::IfcPhysicalSimpleQuantity => true,
            Self::IfcPlacement => true,
            Self::IfcPoint => true,
            Self::IfcPort => true,
            Self::IfcPositioningElement => true,
            Self::IfcPreDefinedColour => true,
            Self::IfcPreDefinedCurveFont => true,
            Self::IfcPreDefinedItem => true,
            Self::IfcPreDefinedProperties => true,
            Self::IfcPreDefinedPropertySet => true,
            Self::IfcPreDefinedTextFont => true,
            Self::IfcPresentationItem => true,
            Self::IfcPresentationStyle => true,
            Self::IfcProcess => true,
            Self::IfcProduct => true,
            Self::IfcProductRepresentation => true,
            Self::IfcProperty => true,
            Self::IfcPropertyAbstraction => true,
            Self::IfcPropertyDefinition => true,
            Self::IfcPropertySetDefinition => true,
            Self::IfcPropertyTemplate => true,
            Self::IfcPropertyTemplateDefinition => true,
            Self::IfcQuantitySet => true,
            Self::IfcReinforcingElement => true,
            Self::IfcReinforcingElementType => true,
            Self::IfcRelAssigns => true,
            Self::IfcRelAssociates => true,
            Self::IfcRelConnects => true,
            Self::IfcRelDecomposes => true,
            Self::IfcRelDefines => true,
            Self::IfcRelationship => true,
            Self::IfcRepresentation => true,
            Self::IfcRepresentationContext => true,
            Self::IfcRepresentationItem => true,
            Self::IfcResource => true,
            Self::IfcResourceLevelRelationship => true,
            Self::IfcRoot => true,
            Self::IfcSchedulingTime => true,
            Self::IfcSectionedSolid => true,
            Self::IfcSegment => true,
            Self::IfcShapeModel => true,
            Self::IfcSimpleProperty => true,
            Self::IfcSolidModel => true,
            Self::IfcSpatialElement => true,
            Self::IfcSpatialElementType => true,
            Self::IfcSpatialStructureElement => true,
            Self::IfcSpatialStructureElementType => true,
            Self::IfcSpiral => true,
            Self::IfcStructuralAction => true,
            Self::IfcStructuralActivity => true,
            Self::IfcStructuralConnection => true,
            Self::IfcStructuralConnectionCondition => true,
            Self::IfcStructuralItem => true,
            Self::IfcStructuralLoad => true,
            Self::IfcStructuralLoadOrResult => true,
            Self::IfcStructuralLoadStatic => true,
            Self::IfcStructuralMember => true,
            Self::IfcStructuralReaction => true,
            Self::IfcStyleModel => true,
            Self::IfcSurface => true,
            Self::IfcSurfaceTexture => true,
            Self::IfcSweptAreaSolid => true,
            Self::IfcSweptSurface => true,
            Self::IfcTessellatedFaceSet => true,
            Self::IfcTessellatedItem => true,
            Self::IfcTextureCoordinate => true,
            Self::IfcTimeSeries => true,
            Self::IfcTopologicalRepresentationItem => true,
            Self::IfcTransportationDevice => true,
            Self::IfcTransportationDeviceType => true,
            Self::IfcTypeProcess => true,
            Self::IfcTypeResource => true,
            Self::IfcWorkControl => true,
            _ => false,
        }
    }
}

impl fmt::Display for IfcType {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "{}", self.name())
    }
}

/// CRC32 hash function for unknown types
fn crc32_hash(s: &str) -> u32 {
    const TABLE: [u32; 256] = [
        0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535,
        0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd,
        0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d,
        0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
        0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4,
        0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
        0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac,
        0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
        0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab,
        0xb6662d3d, 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f,
        0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb,
        0x086d3d2d, 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
        0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea,
        0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 0x4db26158, 0x3ab551ce,
        0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a,
        0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cd9,
        0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409,
        0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
        0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739,
        0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
        0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, 0x8708a3d2, 0x1e01f268,
        0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0,
        0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8,
        0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
        0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef,
        0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703,
        0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7,
        0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
        0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae,
        0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
        0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6,
        0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
        0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d,
        0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5,
        0x47b2cf7f, 0x30b5ffe9, 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605,
        0xcdd706b3, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
        0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,
    ];

    let mut crc = 0xffffffffu32;
    for byte in s.bytes() {
        crc = TABLE[((crc ^ byte as u32) & 0xff) as usize] ^ (crc >> 8);
    }
    crc ^ 0xffffffff
}
