// generated code via ids-lib.codegen using Xbim.Essentials 6.0.517.0, any changes to this file will be lost at next regeneration

using System.Linq;

namespace IdsLib.IfcSchema;

public partial class SchemaInfo
{
	private static partial SchemaInfo GetClassesIFC2x3()
	{
		var schema = new SchemaInfo(IfcSchemaVersions.Ifc2x3) {
			new ClassInfo("IfcAngularDimension", "IfcDimensionCurveDirectedCallout", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Contents" }),
			new ClassInfo("IfcDimensionCurveDirectedCallout", "IfcDraughtingCallout", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Contents" }),
			new ClassInfo("IfcDraughtingCallout", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Contents" }),
			new ClassInfo("IfcGeometricRepresentationItem", "IfcRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcRepresentationItem", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcDiameterDimension", "IfcDimensionCurveDirectedCallout", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Contents" }),
			new ClassInfo("IfcDimensionCalloutRelationship", "IfcDraughtingCalloutRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Name", "Description", "RelatingDraughtingCallout", "RelatedDraughtingCallout" }),
			new ClassInfo("IfcDraughtingCalloutRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Name", "Description", "RelatingDraughtingCallout", "RelatedDraughtingCallout" }),
			new ClassInfo("IfcDimensionCurve", "IfcAnnotationCurveOccurrence", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Item", "Styles", "Name" }),
			new ClassInfo("IfcAnnotationCurveOccurrence", "IfcAnnotationOccurrence", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Item", "Styles", "Name" }),
			new ClassInfo("IfcAnnotationOccurrence", "IfcStyledItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Item", "Styles", "Name" }),
			new ClassInfo("IfcStyledItem", "IfcRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Item", "Styles", "Name" }),
			new ClassInfo("IfcDimensionCurveTerminator", "IfcTerminatorSymbol", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Item", "Styles", "Name", "AnnotatedCurve", "Role" }),
			new ClassInfo("IfcTerminatorSymbol", "IfcAnnotationSymbolOccurrence", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Item", "Styles", "Name", "AnnotatedCurve" }),
			new ClassInfo("IfcAnnotationSymbolOccurrence", "IfcAnnotationOccurrence", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Item", "Styles", "Name" }),
			new ClassInfo("IfcDimensionPair", "IfcDraughtingCalloutRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Name", "Description", "RelatingDraughtingCallout", "RelatedDraughtingCallout" }),
			new ClassInfo("IfcLinearDimension", "IfcDimensionCurveDirectedCallout", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Contents" }),
			new ClassInfo("IfcPreDefinedDimensionSymbol", "IfcPreDefinedSymbol", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedSymbol", "IfcPreDefinedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedItem", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedPointMarkerSymbol", "IfcPreDefinedSymbol", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedTerminatorSymbol", "IfcPreDefinedSymbol", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Name" }),
			new ClassInfo("IfcProjectionCurve", "IfcAnnotationCurveOccurrence", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Item", "Styles", "Name" }),
			new ClassInfo("IfcRadiusDimension", "IfcDimensionCurveDirectedCallout", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Contents" }),
			new ClassInfo("IfcStructuredDimensionCallout", "IfcDraughtingCallout", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDimensioningResource", new[] { "Contents" }),
			new ClassInfo("IfcRelConnectsStructuralActivity", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedStructuralActivity" }),
			new ClassInfo("IfcRelConnects", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRelationship", "IfcRoot", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRoot", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRelConnectsStructuralMember", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingStructuralMember", "RelatedStructuralConnection", "AppliedCondition", "AdditionalConditions", "SupportedLength", "ConditionCoordinateSystem" }),
			new ClassInfo("IfcRelConnectsWithEccentricity", "IfcRelConnectsStructuralMember", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingStructuralMember", "RelatedStructuralConnection", "AppliedCondition", "AdditionalConditions", "SupportedLength", "ConditionCoordinateSystem", "ConnectionConstraint" }),
			new ClassInfo("IfcStructuralAction", "IfcStructuralActivity", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "CausedBy" }),
			new ClassInfo("IfcStructuralActivity", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal" }),
			new ClassInfo("IfcProduct", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcObject", "IfcObjectDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcObjectDefinition", "IfcRoot", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcStructuralAnalysisModel", "IfcSystem", ClassType.Concrete, new[] { "IN_PLANE_LOADING_2D", "OUT_PLANE_LOADING_2D", "LOADING_3D", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "OrientationOf2DPlane", "LoadedBy", "HasResults" }),
			new ClassInfo("IfcSystem", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcGroup", "IfcObject", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcStructuralConnection", "IfcStructuralItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition" }),
			new ClassInfo("IfcStructuralItem", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcStructuralCurveConnection", "IfcStructuralConnection", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition" }),
			new ClassInfo("IfcStructuralCurveMember", "IfcStructuralMember", ClassType.Concrete, new[] { "RIGID_JOINED_MEMBER", "PIN_JOINED_MEMBER", "CABLE", "TENSION_MEMBER", "COMPRESSION_MEMBER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType" }),
			new ClassInfo("IfcStructuralMember", "IfcStructuralItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcStructuralCurveMemberVarying", "IfcStructuralCurveMember", ClassType.Concrete, new[] { "RIGID_JOINED_MEMBER", "PIN_JOINED_MEMBER", "CABLE", "TENSION_MEMBER", "COMPRESSION_MEMBER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType" }),
			new ClassInfo("IfcStructuralLinearAction", "IfcStructuralAction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "CausedBy", "ProjectedOrTrue" }),
			new ClassInfo("IfcStructuralLoadGroup", "IfcGroup", ClassType.Concrete, new[] { "LOAD_GROUP", "LOAD_CASE", "LOAD_COMBINATION_GROUP", "LOAD_COMBINATION", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "ActionType", "ActionSource", "Coefficient", "Purpose" }),
			new ClassInfo("IfcStructuralPlanarAction", "IfcStructuralAction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "CausedBy", "ProjectedOrTrue" }),
			new ClassInfo("IfcStructuralPointAction", "IfcStructuralAction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "CausedBy" }),
			new ClassInfo("IfcStructuralPointConnection", "IfcStructuralConnection", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition" }),
			new ClassInfo("IfcStructuralPointReaction", "IfcStructuralReaction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal" }),
			new ClassInfo("IfcStructuralReaction", "IfcStructuralActivity", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal" }),
			new ClassInfo("IfcStructuralResultGroup", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheoryType", "ResultForLoadGroup", "IsLinear" }),
			new ClassInfo("IfcStructuralSurfaceConnection", "IfcStructuralConnection", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition" }),
			new ClassInfo("IfcStructuralSurfaceMember", "IfcStructuralMember", ClassType.Concrete, new[] { "BENDING_ELEMENT", "MEMBRANE_ELEMENT", "SHELL", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Thickness" }),
			new ClassInfo("IfcStructuralSurfaceMemberVarying", "IfcStructuralSurfaceMember", ClassType.Concrete, new[] { "BENDING_ELEMENT", "MEMBRANE_ELEMENT", "SHELL", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Thickness", "SubsequentThickness", "VaryingThicknessLocation" }),
			new ClassInfo("IfcRelAssociatesProfileProperties", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingProfileProperties", "ProfileSectionLocation", "ProfileOrientation" }),
			new ClassInfo("IfcRelAssociates", "IfcRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects" }),
			new ClassInfo("IfcRelConnectsStructuralElement", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedStructuralMember" }),
			new ClassInfo("IfcStructuralLinearActionVarying", "IfcStructuralLinearAction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "CausedBy", "ProjectedOrTrue", "VaryingAppliedLoadLocation", "SubsequentAppliedLoads" }),
			new ClassInfo("IfcStructuralPlanarActionVarying", "IfcStructuralPlanarAction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "CausedBy", "ProjectedOrTrue", "VaryingAppliedLoadLocation", "SubsequentAppliedLoads" }),
			new ClassInfo("IfcProfileProperties", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProfilePropertyResource", new[] { "ProfileName", "ProfileDefinition" }),
			new ClassInfo("IfcReinforcementBarProperties", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfilePropertyResource", new[] { "TotalCrossSectionArea", "SteelGrade", "BarSurface", "EffectiveDepth", "NominalBarDiameter", "BarCount" }),
			new ClassInfo("IfcSectionProperties", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfilePropertyResource", new[] { "SectionType", "StartProfile", "EndProfile" }),
			new ClassInfo("IfcSectionReinforcementProperties", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfilePropertyResource", new[] { "LongitudinalStartPosition", "LongitudinalEndPosition", "TransversePosition", "ReinforcementRole", "SectionDefinition", "CrossSectionReinforcementDefinitions" }),
			new ClassInfo("IfcGeneralProfileProperties", "IfcProfileProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfilePropertyResource", new[] { "ProfileName", "ProfileDefinition", "PhysicalWeight", "Perimeter", "MinimumPlateThickness", "MaximumPlateThickness", "CrossSectionArea" }),
			new ClassInfo("IfcRibPlateProfileProperties", "IfcProfileProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfilePropertyResource", new[] { "ProfileName", "ProfileDefinition", "Thickness", "RibHeight", "RibWidth", "RibSpacing", "Direction" }),
			new ClassInfo("IfcStructuralProfileProperties", "IfcGeneralProfileProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfilePropertyResource", new[] { "ProfileName", "ProfileDefinition", "PhysicalWeight", "Perimeter", "MinimumPlateThickness", "MaximumPlateThickness", "CrossSectionArea", "TorsionalConstantX", "MomentOfInertiaYZ", "MomentOfInertiaY", "MomentOfInertiaZ", "WarpingConstant", "ShearCentreZ", "ShearCentreY", "ShearDeformationAreaZ", "ShearDeformationAreaY", "MaximumSectionModulusY", "MinimumSectionModulusY", "MaximumSectionModulusZ", "MinimumSectionModulusZ", "TorsionalSectionModulus", "CentreOfGravityInX", "CentreOfGravityInY" }),
			new ClassInfo("IfcStructuralSteelProfileProperties", "IfcStructuralProfileProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfilePropertyResource", new[] { "ProfileName", "ProfileDefinition", "PhysicalWeight", "Perimeter", "MinimumPlateThickness", "MaximumPlateThickness", "CrossSectionArea", "TorsionalConstantX", "MomentOfInertiaYZ", "MomentOfInertiaY", "MomentOfInertiaZ", "WarpingConstant", "ShearCentreZ", "ShearCentreY", "ShearDeformationAreaZ", "ShearDeformationAreaY", "MaximumSectionModulusY", "MinimumSectionModulusY", "MaximumSectionModulusZ", "MinimumSectionModulusZ", "TorsionalSectionModulus", "CentreOfGravityInX", "CentreOfGravityInY", "ShearAreaZ", "ShearAreaY", "PlasticShapeFactorY", "PlasticShapeFactorZ" }),
			new ClassInfo("IfcProcedure", "IfcProcess", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ProcedureID", "ProcedureType", "UserDefinedProcedureType" }),
			new ClassInfo("IfcProcess", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcTask", "IfcProcess", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TaskId", "Status", "WorkMethod", "IsMilestone", "Priority" }),
			new ClassInfo("IfcWorkControl", "IfcControl", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identifier", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime", "WorkControlType", "UserDefinedControlType" }),
			new ClassInfo("IfcControl", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcWorkPlan", "IfcWorkControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identifier", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime", "WorkControlType", "UserDefinedControlType" }),
			new ClassInfo("IfcWorkSchedule", "IfcWorkControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identifier", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime", "WorkControlType", "UserDefinedControlType" }),
			new ClassInfo("IfcRelAssignsTasks", "IfcRelAssignsToControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingControl", "TimeForTask" }),
			new ClassInfo("IfcRelAssignsToControl", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingControl" }),
			new ClassInfo("IfcRelAssigns", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType" }),
			new ClassInfo("IfcScheduleTimeControl", "IfcControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ActualStart", "EarlyStart", "LateStart", "ScheduleStart", "ActualFinish", "EarlyFinish", "LateFinish", "ScheduleFinish", "ScheduleDuration", "ActualDuration", "RemainingTime", "FreeFloat", "TotalFloat", "IsCritical", "StatusTime", "StartFloat", "FinishFloat", "Completion" }),
			new ClassInfo("IfcPhysicalComplexQuantity", "IfcPhysicalQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.QuantityResource", new[] { "Name", "Description", "HasQuantities", "Discrimination", "Quality", "Usage" }),
			new ClassInfo("IfcPhysicalQuantity", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.QuantityResource", new[] { "Name", "Description" }),
			new ClassInfo("IfcPhysicalSimpleQuantity", "IfcPhysicalQuantity", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.QuantityResource", new[] { "Name", "Description", "Unit" }),
			new ClassInfo("IfcQuantityArea", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.QuantityResource", new[] { "Name", "Description", "Unit", "AreaValue" }),
			new ClassInfo("IfcQuantityCount", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.QuantityResource", new[] { "Name", "Description", "Unit", "CountValue" }),
			new ClassInfo("IfcQuantityLength", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.QuantityResource", new[] { "Name", "Description", "Unit", "LengthValue" }),
			new ClassInfo("IfcQuantityTime", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.QuantityResource", new[] { "Name", "Description", "Unit", "TimeValue" }),
			new ClassInfo("IfcQuantityVolume", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.QuantityResource", new[] { "Name", "Description", "Unit", "VolumeValue" }),
			new ClassInfo("IfcQuantityWeight", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.QuantityResource", new[] { "Name", "Description", "Unit", "WeightValue" }),
			new ClassInfo("IfcMaterialProperties", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material" }),
			new ClassInfo("IfcExtendedMaterialProperties", "IfcMaterialProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material", "ExtendedProperties", "Description", "Name" }),
			new ClassInfo("IfcFuelProperties", "IfcMaterialProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material", "CombustionTemperature", "CarbonContent", "LowerHeatingValue", "HigherHeatingValue" }),
			new ClassInfo("IfcGeneralMaterialProperties", "IfcMaterialProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material", "MolecularWeight", "Porosity", "MassDensity" }),
			new ClassInfo("IfcHygroscopicMaterialProperties", "IfcMaterialProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material", "UpperVaporResistanceFactor", "LowerVaporResistanceFactor", "IsothermalMoistureCapacity", "VaporPermeability", "MoistureDiffusivity" }),
			new ClassInfo("IfcMechanicalConcreteMaterialProperties", "IfcMechanicalMaterialProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material", "DynamicViscosity", "YoungModulus", "ShearModulus", "PoissonRatio", "ThermalExpansionCoefficient", "CompressiveStrength", "MaxAggregateSize", "AdmixturesDescription", "Workability", "ProtectivePoreRatio", "WaterImpermeability" }),
			new ClassInfo("IfcMechanicalMaterialProperties", "IfcMaterialProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material", "DynamicViscosity", "YoungModulus", "ShearModulus", "PoissonRatio", "ThermalExpansionCoefficient" }),
			new ClassInfo("IfcMechanicalSteelMaterialProperties", "IfcMechanicalMaterialProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material", "DynamicViscosity", "YoungModulus", "ShearModulus", "PoissonRatio", "ThermalExpansionCoefficient", "YieldStress", "UltimateStress", "UltimateStrain", "HardeningModule", "ProportionalStress", "PlasticStrain", "Relaxations" }),
			new ClassInfo("IfcOpticalMaterialProperties", "IfcMaterialProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material", "VisibleTransmittance", "SolarTransmittance", "ThermalIrTransmittance", "ThermalIrEmissivityBack", "ThermalIrEmissivityFront", "VisibleReflectanceBack", "VisibleReflectanceFront", "SolarReflectanceFront", "SolarReflectanceBack" }),
			new ClassInfo("IfcProductsOfCombustionProperties", "IfcMaterialProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material", "SpecificHeatCapacity", "N20Content", "COContent", "CO2Content" }),
			new ClassInfo("IfcRelaxation", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "RelaxationValue", "InitialStress" }),
			new ClassInfo("IfcThermalMaterialProperties", "IfcMaterialProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material", "SpecificHeatCapacity", "BoilingPoint", "FreezingPoint", "ThermalConductivity" }),
			new ClassInfo("IfcWaterProperties", "IfcMaterialProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialPropertyResource", new[] { "Material", "IsPotable", "Hardness", "AlkalinityConcentration", "AcidityConcentration", "ImpuritiesContent", "PHLevel", "DissolvedSolidsContent" }),
			new ClassInfo("IfcMaterial", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialResource", new[] { "Name" }),
			new ClassInfo("IfcMaterialClassificationRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialResource", new[] { "MaterialClassifications", "ClassifiedMaterial" }),
			new ClassInfo("IfcMaterialLayer", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialResource", new[] { "Material", "LayerThickness", "IsVentilated" }),
			new ClassInfo("IfcMaterialLayerSet", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialResource", new[] { "MaterialLayers", "LayerSetName" }),
			new ClassInfo("IfcMaterialLayerSetUsage", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialResource", new[] { "ForLayerSet", "LayerSetDirection", "DirectionSense", "OffsetFromReferenceLine" }),
			new ClassInfo("IfcMaterialList", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MaterialResource", new[] { "Materials" }),
			new ClassInfo("IfcLightDistributionData", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationOrganizationResource", new[] { "MainPlaneAngle", "SecondaryPlaneAngle", "LuminousIntensity" }),
			new ClassInfo("IfcLightIntensityDistribution", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationOrganizationResource", new[] { "LightDistributionCurve", "DistributionData" }),
			new ClassInfo("IfcLightSource", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity" }),
			new ClassInfo("IfcLightSourceAmbient", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity" }),
			new ClassInfo("IfcLightSourceDirectional", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Orientation" }),
			new ClassInfo("IfcLightSourceGoniometric", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "ColourAppearance", "ColourTemperature", "LuminousFlux", "LightEmissionSource", "LightDistributionDataSource" }),
			new ClassInfo("IfcLightSourcePositional", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "Radius", "ConstantAttenuation", "DistanceAttenuation", "QuadricAttenuation" }),
			new ClassInfo("IfcLightSourceSpot", "IfcLightSourcePositional", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "Radius", "ConstantAttenuation", "DistanceAttenuation", "QuadricAttenuation", "Orientation", "ConcentrationExponent", "SpreadAngle", "BeamWidthAngle" }),
			new ClassInfo("IfcPresentationLayerAssignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationOrganizationResource", new[] { "Name", "Description", "AssignedItems", "Identifier" }),
			new ClassInfo("IfcPresentationLayerWithStyle", "IfcPresentationLayerAssignment", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationOrganizationResource", new[] { "Name", "Description", "AssignedItems", "Identifier", "LayerOn", "LayerFrozen", "LayerBlocked", "LayerStyles" }),
			new ClassInfo("IfcIrregularTimeSeries", "IfcTimeSeries", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TimeSeriesResource", new[] { "Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit", "Values" }),
			new ClassInfo("IfcTimeSeries", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.TimeSeriesResource", new[] { "Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit" }),
			new ClassInfo("IfcIrregularTimeSeriesValue", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TimeSeriesResource", new[] { "TimeStamp", "ListValues" }),
			new ClassInfo("IfcRegularTimeSeries", "IfcTimeSeries", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TimeSeriesResource", new[] { "Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit", "TimeStep", "Values" }),
			new ClassInfo("IfcTimeSeriesValue", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TimeSeriesResource", new[] { "ListValues" }),
			new ClassInfo("IfcTimeSeriesReferenceRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TimeSeriesResource", new[] { "ReferencedTimeSeries", "TimeSeriesReferences" }),
			new ClassInfo("IfcGeometricRepresentationContext", "IfcRepresentationContext", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "ContextIdentifier", "ContextType", "CoordinateSpaceDimension", "Precision", "WorldCoordinateSystem", "TrueNorth" }),
			new ClassInfo("IfcRepresentationContext", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "ContextIdentifier", "ContextType" }),
			new ClassInfo("IfcGeometricRepresentationSubContext", "IfcGeometricRepresentationContext", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "ContextIdentifier", "ContextType", "CoordinateSpaceDimension", "Precision", "WorldCoordinateSystem", "TrueNorth", "ParentContext", "TargetScale", "TargetView", "UserDefinedTargetView" }),
			new ClassInfo("IfcMaterialDefinitionRepresentation", "IfcProductRepresentation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "Name", "Description", "Representations", "RepresentedMaterial" }),
			new ClassInfo("IfcProductRepresentation", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "Name", "Description", "Representations" }),
			new ClassInfo("IfcProductDefinitionShape", "IfcProductRepresentation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "Name", "Description", "Representations" }),
			new ClassInfo("IfcRepresentation", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcShapeAspect", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "ShapeRepresentations", "Name", "Description", "ProductDefinitional", "PartOfProductDefinitionShape" }),
			new ClassInfo("IfcShapeModel", "IfcRepresentation", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcShapeRepresentation", "IfcShapeModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcStyledRepresentation", "IfcStyleModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcStyleModel", "IfcRepresentation", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcTopologyRepresentation", "IfcShapeModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcFireSuppressionTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "BREECHINGINLET", "FIREHYDRANT", "HOSEREEL", "SPRINKLER", "SPRINKLERDEFLECTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFlowTerminalType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcDistributionFlowElementType", "IfcDistributionElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcDistributionElementType", "IfcElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcElementType", "IfcTypeProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcTypeProduct", "IfcTypeObject", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag" }),
			new ClassInfo("IfcTypeObject", "IfcObjectDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets" }),
			new ClassInfo("IfcSanitaryTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "BATH", "BIDET", "CISTERN", "SHOWER", "SINK", "SANITARYFOUNTAIN", "TOILETPAN", "URINAL", "WASHHANDBASIN", "WCSEAT", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcStackTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "BIRDCAGE", "COWL", "RAINWATERHOPPER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcWasteTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "FLOORTRAP", "FLOORWASTE", "GULLYSUMP", "GULLYTRAP", "GREASEINTERCEPTOR", "OILINTERCEPTOR", "PETROLINTERCEPTOR", "ROOFDRAIN", "WASTEDISPOSALUNIT", "WASTETRAP", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDistributionChamberElement", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcDistributionFlowElement", "IfcDistributionElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcDistributionElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcElement", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcDistributionChamberElementType", "IfcDistributionFlowElementType", ClassType.Concrete, new[] { "FORMEDDUCT", "INSPECTIONCHAMBER", "INSPECTIONPIT", "MANHOLE", "METERCHAMBER", "SUMP", "TRENCH", "VALVECHAMBER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDistributionControlElement", "IfcDistributionElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "ControlElementId" }),
			new ClassInfo("IfcDistributionControlElementType", "IfcDistributionElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcDistributionPort", "IfcPort", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "FlowDirection" }),
			new ClassInfo("IfcPort", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcEnergyConversionDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcEnergyConversionDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowController", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowControllerType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowFitting", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowFittingType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowMovingDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowMovingDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowSegment", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowSegmentType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowStorageDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowStorageDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowTerminal", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowTreatmentDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowTreatmentDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcRelFlowControlElements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedControlElements", "RelatingFlowElement" }),
			new ClassInfo("IfcElectricalBaseProperties", "IfcEnergyProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "EnergySequence", "UserDefinedEnergySequence", "ElectricCurrentType", "InputVoltage", "InputFrequency", "FullLoadCurrent", "MinimumCircuitCurrent", "MaximumPowerInput", "RatedPowerInput", "InputPhase" }),
			new ClassInfo("IfcEnergyProperties", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "EnergySequence", "UserDefinedEnergySequence" }),
			new ClassInfo("IfcPropertySetDefinition", "IfcPropertyDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcPropertyDefinition", "IfcRoot", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcFluidFlowProperties", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "PropertySource", "FlowConditionTimeSeries", "VelocityTimeSeries", "FlowrateTimeSeries", "Fluid", "PressureTimeSeries", "UserDefinedPropertySource", "TemperatureSingleValue", "WetBulbTemperatureSingleValue", "WetBulbTemperatureTimeSeries", "TemperatureTimeSeries", "FlowrateSingleValue", "FlowConditionSingleValue", "VelocitySingleValue", "PressureSingleValue" }),
			new ClassInfo("IfcSoundProperties", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "IsAttenuating", "SoundScale", "SoundValues" }),
			new ClassInfo("IfcSoundValue", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "SoundLevelTimeSeries", "Frequency", "SoundLevelSingleValue" }),
			new ClassInfo("IfcSpaceThermalLoadProperties", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableValueRatio", "ThermalLoadSource", "PropertySource", "SourceDescription", "MaximumValue", "MinimumValue", "ThermalLoadTimeSeriesValues", "UserDefinedThermalLoadSource", "UserDefinedPropertySource", "ThermalLoadType" }),
			new ClassInfo("IfcDiscreteAccessory", "IfcElementComponent", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcElementComponent", "IfcElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcDiscreteAccessoryType", "IfcElementComponentType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcElementComponentType", "IfcElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFastener", "IfcElementComponent", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFastenerType", "IfcElementComponentType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcMechanicalFastener", "IfcFastener", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "NominalDiameter", "NominalLength" }),
			new ClassInfo("IfcMechanicalFastenerType", "IfcFastenerType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcChamferEdgeFeature", "IfcEdgeFeature", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "FeatureLength", "Width", "Height" }),
			new ClassInfo("IfcEdgeFeature", "IfcFeatureElementSubtraction", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "FeatureLength" }),
			new ClassInfo("IfcFeatureElementSubtraction", "IfcFeatureElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFeatureElement", "IfcElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcRoundedEdgeFeature", "IfcEdgeFeature", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "FeatureLength", "Radius" }),
			new ClassInfo("IfcCostItem", "IfcControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcCostSchedule", "IfcControl", ClassType.Concrete, new[] { "BUDGET", "COSTPLAN", "ESTIMATE", "TENDER", "PRICEDBILLOFQUANTITIES", "UNPRICEDBILLOFQUANTITIES", "SCHEDULEOFRATES", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "SubmittedBy", "PreparedBy", "SubmittedOn", "Status", "TargetUsers", "UpdateDate", "ID", "PredefinedType" }),
			new ClassInfo("IfcProjectOrder", "IfcControl", ClassType.Concrete, new[] { "CHANGEORDER", "MAINTENANCEWORKORDER", "MOVEORDER", "PURCHASEORDER", "WORKORDER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ID", "PredefinedType", "Status" }),
			new ClassInfo("IfcProjectOrderRecord", "IfcControl", ClassType.Concrete, new[] { "CHANGE", "MAINTENANCE", "MOVE", "PURCHASE", "WORK", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Records", "PredefinedType" }),
			new ClassInfo("IfcRelAssignsToProjectOrder", "IfcRelAssignsToControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingControl" }),
			new ClassInfo("IfcRelAssociatesAppliedValue", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingAppliedValue" }),
			new ClassInfo("IfcRelSchedulesCostItems", "IfcRelAssignsToControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingControl" }),
			new ClassInfo("IfcContextDependentUnit", "IfcNamedUnit", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "Dimensions", "UnitType", "Name" }),
			new ClassInfo("IfcNamedUnit", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "Dimensions", "UnitType" }),
			new ClassInfo("IfcConversionBasedUnit", "IfcNamedUnit", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "Dimensions", "UnitType", "Name", "ConversionFactor" }),
			new ClassInfo("IfcDerivedUnit", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "Elements", "UnitType", "UserDefinedType" }),
			new ClassInfo("IfcDerivedUnitElement", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "Unit", "Exponent" }),
			new ClassInfo("IfcDimensionalExponents", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "LengthExponent", "MassExponent", "TimeExponent", "ElectricCurrentExponent", "ThermodynamicTemperatureExponent", "AmountOfSubstanceExponent", "LuminousIntensityExponent" }),
			new ClassInfo("IfcMeasureWithUnit", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "ValueComponent", "UnitComponent" }),
			new ClassInfo("IfcMonetaryUnit", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "Currency" }),
			new ClassInfo("IfcSIUnit", "IfcNamedUnit", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "Dimensions", "UnitType", "Prefix", "Name" }),
			new ClassInfo("IfcUnitAssignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "Units" }),
			new ClassInfo("IfcAbsorbedDoseMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAccelerationMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAmountOfSubstanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAngularVelocityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAreaMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcBoolean", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcComplexNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcCompoundPlaneAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcContextDependentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcCountMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcCurvatureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcDescriptiveMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcDoseEquivalentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcDynamicViscosityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricCapacitanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricChargeMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricConductanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricCurrentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricResistanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricVoltageMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcEnergyMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcForceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcFrequencyMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcHeatFluxDensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcHeatingValueMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIdentifier", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIlluminanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcInductanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcInteger", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIntegerCountRateMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIonConcentrationMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIsothermalMoistureCapacityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcKinematicViscosityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLabel", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLengthMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearForceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearMomentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearStiffnessMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearVelocityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLogical", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLuminousFluxMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLuminousIntensityDistributionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLuminousIntensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMagneticFluxDensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMagneticFluxMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassDensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassFlowRateMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassPerLengthMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcModulusOfElasticityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcModulusOfLinearSubgradeReactionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcModulusOfRotationalSubgradeReactionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcModulusOfSubgradeReactionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMoistureDiffusivityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMolecularWeightMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMomentOfInertiaMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMonetaryMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcNormalisedRatioMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcNumericMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcParameterValue", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPHMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPlanarForceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPlaneAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPositiveLengthMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPositivePlaneAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPositiveRatioMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPowerMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPressureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRadioActivityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRatioMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcReal", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRotationalFrequencyMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRotationalMassMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRotationalStiffnessMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSectionalAreaIntegralMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSectionModulusMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcShearModulusMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSolidAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSoundPowerMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSoundPressureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSpecificHeatCapacityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTemperatureGradientMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcText", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalAdmittanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalConductivityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalExpansionCoefficientMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalResistanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalTransmittanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermodynamicTemperatureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTimeMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTimeStamp", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTorqueMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcVaporPermeabilityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcVolumeMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcVolumetricFlowRateMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcWarpingConstantMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcWarpingMomentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcComplexProperty", "IfcProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PropertyResource", new[] { "Name", "Description", "UsageName", "HasProperties" }),
			new ClassInfo("IfcProperty", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PropertyResource", new[] { "Name", "Description" }),
			new ClassInfo("IfcPropertyBoundedValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PropertyResource", new[] { "Name", "Description", "UpperBoundValue", "LowerBoundValue", "Unit" }),
			new ClassInfo("IfcSimpleProperty", "IfcProperty", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PropertyResource", new[] { "Name", "Description" }),
			new ClassInfo("IfcPropertyDependencyRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PropertyResource", new[] { "DependingProperty", "DependantProperty", "Name", "Description", "Expression" }),
			new ClassInfo("IfcPropertyEnumeratedValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PropertyResource", new[] { "Name", "Description", "EnumerationValues", "EnumerationReference" }),
			new ClassInfo("IfcPropertyEnumeration", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PropertyResource", new[] { "Name", "EnumerationValues", "Unit" }),
			new ClassInfo("IfcPropertyListValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PropertyResource", new[] { "Name", "Description", "ListValues", "Unit" }),
			new ClassInfo("IfcPropertyReferenceValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PropertyResource", new[] { "Name", "Description", "UsageName", "PropertyReference" }),
			new ClassInfo("IfcPropertySingleValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PropertyResource", new[] { "Name", "Description", "NominalValue", "Unit" }),
			new ClassInfo("IfcPropertyTableValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PropertyResource", new[] { "Name", "Description", "DefiningValues", "DefinedValues", "Expression", "DefiningUnit", "DefinedUnit" }),
			new ClassInfo("IfcColourRgb", "IfcColourSpecification", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "Name", "Red", "Green", "Blue" }),
			new ClassInfo("IfcColourSpecification", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "Name" }),
			new ClassInfo("IfcDraughtingPreDefinedColour", "IfcPreDefinedColour", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedColour", "IfcPreDefinedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "Name" }),
			new ClassInfo("IfcExternallyDefinedTextFont", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "Location", "ItemReference", "Name" }),
			new ClassInfo("IfcExternalReference", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "Location", "ItemReference", "Name" }),
			new ClassInfo("IfcPlanarBox", "IfcPlanarExtent", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "SizeInX", "SizeInY", "Placement" }),
			new ClassInfo("IfcPlanarExtent", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "SizeInX", "SizeInY" }),
			new ClassInfo("IfcPreDefinedTextFont", "IfcPreDefinedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "Name" }),
			new ClassInfo("IfcTextStyleFontModel", "IfcPreDefinedTextFont", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "Name", "FontFamily", "FontStyle", "FontVariant", "FontWeight", "FontSize" }),
			new ClassInfo("IfcDraughtingPreDefinedTextFont", "IfcPreDefinedTextFont", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "Name" }),
			new ClassInfo("IfcFontStyle", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "" }),
			new ClassInfo("IfcFontVariant", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "" }),
			new ClassInfo("IfcFontWeight", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "" }),
			new ClassInfo("IfcPresentableText", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "" }),
			new ClassInfo("IfcTextFontName", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationResource", new[] { "" }),
			new ClassInfo("IfcClosedShell", "IfcConnectedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "CfsFaces" }),
			new ClassInfo("IfcConnectedFaceSet", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "CfsFaces" }),
			new ClassInfo("IfcTopologicalRepresentationItem", "IfcRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "" }),
			new ClassInfo("IfcEdge", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "EdgeStart", "EdgeEnd" }),
			new ClassInfo("IfcEdgeCurve", "IfcEdge", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "EdgeStart", "EdgeEnd", "EdgeGeometry", "SameSense" }),
			new ClassInfo("IfcEdgeLoop", "IfcLoop", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "EdgeList" }),
			new ClassInfo("IfcLoop", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "" }),
			new ClassInfo("IfcFace", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "Bounds" }),
			new ClassInfo("IfcFaceBound", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "Bound", "Orientation" }),
			new ClassInfo("IfcFaceOuterBound", "IfcFaceBound", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "Bound", "Orientation" }),
			new ClassInfo("IfcFaceSurface", "IfcFace", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "Bounds", "FaceSurface", "SameSense" }),
			new ClassInfo("IfcOpenShell", "IfcConnectedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "CfsFaces" }),
			new ClassInfo("IfcOrientedEdge", "IfcEdge", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "EdgeStart", "EdgeEnd", "EdgeElement", "Orientation" }),
			new ClassInfo("IfcPath", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "EdgeList" }),
			new ClassInfo("IfcPolyLoop", "IfcLoop", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "Polygon" }),
			new ClassInfo("IfcSubedge", "IfcEdge", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "EdgeStart", "EdgeEnd", "ParentEdge" }),
			new ClassInfo("IfcVertex", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "" }),
			new ClassInfo("IfcVertexLoop", "IfcLoop", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "LoopVertex" }),
			new ClassInfo("IfcVertexPoint", "IfcVertex", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.TopologyResource", new[] { "VertexGeometry" }),
			new ClassInfo("IfcBuildingElementPart", "IfcBuildingElementComponent", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcBuildingElementComponent", "IfcBuildingElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcBuildingElement", "IfcElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFooting", "IfcBuildingElement", ClassType.Concrete, new[] { "FOOTING_BEAM", "PAD_FOOTING", "PILE_CAP", "STRIP_FOOTING", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPile", "IfcBuildingElement", ClassType.Concrete, new[] { "COHESION", "FRICTION", "SUPPORT", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType", "ConstructionType" }),
			new ClassInfo("IfcReinforcementDefinitionProperties", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "DefinitionType", "ReinforcementSectionDefinitions" }),
			new ClassInfo("IfcReinforcingBar", "IfcReinforcingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "NominalDiameter", "CrossSectionArea", "BarLength", "BarRole", "BarSurface" }),
			new ClassInfo("IfcReinforcingElement", "IfcBuildingElementComponent", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade" }),
			new ClassInfo("IfcReinforcingMesh", "IfcReinforcingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "MeshLength", "MeshWidth", "LongitudinalBarNominalDiameter", "TransverseBarNominalDiameter", "LongitudinalBarCrossSectionArea", "TransverseBarCrossSectionArea", "LongitudinalBarSpacing", "TransverseBarSpacing" }),
			new ClassInfo("IfcTendon", "IfcReinforcingElement", ClassType.Concrete, new[] { "STRAND", "WIRE", "BAR", "COATED", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "PredefinedType", "NominalDiameter", "CrossSectionArea", "TensionForce", "PreStress", "FrictionCoefficient", "AnchorageSlip", "MinCurvatureRadius" }),
			new ClassInfo("IfcTendonAnchor", "IfcReinforcingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade" }),
			new ClassInfo("IfcBoundaryCondition", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcBoundaryEdgeCondition", "IfcBoundaryCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "LinearStiffnessByLengthX", "LinearStiffnessByLengthY", "LinearStiffnessByLengthZ", "RotationalStiffnessByLengthX", "RotationalStiffnessByLengthY", "RotationalStiffnessByLengthZ" }),
			new ClassInfo("IfcBoundaryFaceCondition", "IfcBoundaryCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "LinearStiffnessByAreaX", "LinearStiffnessByAreaY", "LinearStiffnessByAreaZ" }),
			new ClassInfo("IfcBoundaryNodeCondition", "IfcBoundaryCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "LinearStiffnessX", "LinearStiffnessY", "LinearStiffnessZ", "RotationalStiffnessX", "RotationalStiffnessY", "RotationalStiffnessZ" }),
			new ClassInfo("IfcBoundaryNodeConditionWarping", "IfcBoundaryNodeCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "LinearStiffnessX", "LinearStiffnessY", "LinearStiffnessZ", "RotationalStiffnessX", "RotationalStiffnessY", "RotationalStiffnessZ", "WarpingStiffness" }),
			new ClassInfo("IfcFailureConnectionCondition", "IfcStructuralConnectionCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "TensionFailureX", "TensionFailureY", "TensionFailureZ", "CompressionFailureX", "CompressionFailureY", "CompressionFailureZ" }),
			new ClassInfo("IfcStructuralConnectionCondition", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcSlippageConnectionCondition", "IfcStructuralConnectionCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "SlippageX", "SlippageY", "SlippageZ" }),
			new ClassInfo("IfcStructuralLoad", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcStructuralLoadLinearForce", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "LinearForceX", "LinearForceY", "LinearForceZ", "LinearMomentX", "LinearMomentY", "LinearMomentZ" }),
			new ClassInfo("IfcStructuralLoadStatic", "IfcStructuralLoad", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcStructuralLoadPlanarForce", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "PlanarForceX", "PlanarForceY", "PlanarForceZ" }),
			new ClassInfo("IfcStructuralLoadSingleDisplacement", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "DisplacementX", "DisplacementY", "DisplacementZ", "RotationalDisplacementRX", "RotationalDisplacementRY", "RotationalDisplacementRZ" }),
			new ClassInfo("IfcStructuralLoadSingleDisplacementDistortion", "IfcStructuralLoadSingleDisplacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "DisplacementX", "DisplacementY", "DisplacementZ", "RotationalDisplacementRX", "RotationalDisplacementRY", "RotationalDisplacementRZ", "Distortion" }),
			new ClassInfo("IfcStructuralLoadSingleForce", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "ForceX", "ForceY", "ForceZ", "MomentX", "MomentY", "MomentZ" }),
			new ClassInfo("IfcStructuralLoadSingleForceWarping", "IfcStructuralLoadSingleForce", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "ForceX", "ForceY", "ForceZ", "MomentX", "MomentY", "MomentZ", "WarpingMoment" }),
			new ClassInfo("IfcStructuralLoadTemperature", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.StructuralLoadResource", new[] { "Name", "DeltaT_Constant", "DeltaT_Y", "DeltaT_Z" }),
			new ClassInfo("IfcBlobTexture", "IfcSurfaceTexture", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "TextureType", "TextureTransform", "RasterFormat", "RasterCode" }),
			new ClassInfo("IfcSurfaceTexture", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "TextureType", "TextureTransform" }),
			new ClassInfo("IfcCurveStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Name", "CurveFont", "CurveWidth", "CurveColour" }),
			new ClassInfo("IfcPresentationStyle", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcCurveStyleFont", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Name", "PatternList" }),
			new ClassInfo("IfcCurveStyleFontAndScaling", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Name", "CurveFont", "CurveFontScaling" }),
			new ClassInfo("IfcCurveStyleFontPattern", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "VisibleSegmentLength", "InvisibleSegmentLength" }),
			new ClassInfo("IfcDraughtingPreDefinedCurveFont", "IfcPreDefinedCurveFont", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedCurveFont", "IfcPreDefinedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcExternallyDefinedHatchStyle", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Location", "ItemReference", "Name" }),
			new ClassInfo("IfcExternallyDefinedSurfaceStyle", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Location", "ItemReference", "Name" }),
			new ClassInfo("IfcFillAreaStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Name", "FillStyles" }),
			new ClassInfo("IfcFillAreaStyleHatching", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "HatchLineAppearance", "StartOfNextHatchLine", "PointOfReferenceHatchLine", "PatternStart", "HatchLineAngle" }),
			new ClassInfo("IfcFillAreaStyleTiles", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "TilingPattern", "Tiles", "TilingScale" }),
			new ClassInfo("IfcImageTexture", "IfcSurfaceTexture", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "TextureType", "TextureTransform", "UrlReference" }),
			new ClassInfo("IfcPixelTexture", "IfcSurfaceTexture", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "TextureType", "TextureTransform", "Width", "Height", "ColourComponents", "Pixel" }),
			new ClassInfo("IfcPresentationStyleAssignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Styles" }),
			new ClassInfo("IfcSurfaceStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Name", "Side", "Styles" }),
			new ClassInfo("IfcSurfaceStyleLighting", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "DiffuseTransmissionColour", "DiffuseReflectionColour", "TransmissionColour", "ReflectanceColour" }),
			new ClassInfo("IfcSurfaceStyleRefraction", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "RefractionIndex", "DispersionFactor" }),
			new ClassInfo("IfcSurfaceStyleRendering", "IfcSurfaceStyleShading", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "SurfaceColour", "Transparency", "DiffuseColour", "TransmissionColour", "DiffuseTransmissionColour", "ReflectionColour", "SpecularColour", "SpecularHighlight", "ReflectanceMethod" }),
			new ClassInfo("IfcSurfaceStyleShading", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "SurfaceColour" }),
			new ClassInfo("IfcSurfaceStyleWithTextures", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Textures" }),
			new ClassInfo("IfcTextStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Name", "TextCharacterAppearance", "TextStyle", "TextFontStyle" }),
			new ClassInfo("IfcTextStyleForDefinedFont", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Colour", "BackgroundColour" }),
			new ClassInfo("IfcTextStyleTextModel", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "TextIndent", "TextAlign", "TextDecoration", "LetterSpacing", "WordSpacing", "TextTransform", "LineHeight" }),
			new ClassInfo("IfcFillAreaStyleTileSymbolWithStyle", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Symbol" }),
			new ClassInfo("IfcNullStyle", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcOneDirectionRepeatFactor", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "RepeatFactor" }),
			new ClassInfo("IfcSpecularExponent", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcSpecularRoughness", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcSymbolStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "Name", "StyleOfSymbol" }),
			new ClassInfo("IfcTextAlignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTextDecoration", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTextStyleWithBoxCharacteristics", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "BoxHeight", "BoxWidth", "BoxSlantAngle", "BoxRotateAngle", "CharacterSpacing" }),
			new ClassInfo("IfcTextTransformation", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTwoDirectionRepeatFactor", "IfcOneDirectionRepeatFactor", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationAppearanceResource", new[] { "RepeatFactor", "SecondRepeatFactor" }),
			new ClassInfo("IfcBeam", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcBeamType", "IfcBuildingElementType", ClassType.Concrete, new[] { "BEAM", "JOIST", "LINTEL", "T_BEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBuildingElementType", "IfcElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcColumn", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcColumnType", "IfcBuildingElementType", ClassType.Concrete, new[] { "COLUMN", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCurtainWall", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcCurtainWallType", "IfcBuildingElementType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDoor", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth" }),
			new ClassInfo("IfcDoorLiningProperties", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "LiningDepth", "LiningThickness", "ThresholdDepth", "ThresholdThickness", "TransomThickness", "TransomOffset", "LiningOffset", "ThresholdOffset", "CasingThickness", "CasingDepth", "ShapeAspectStyle" }),
			new ClassInfo("IfcDoorPanelProperties", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "PanelDepth", "PanelOperation", "PanelWidth", "PanelPosition", "ShapeAspectStyle" }),
			new ClassInfo("IfcDoorStyle", "IfcTypeProduct", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "OperationType", "ConstructionType", "ParameterTakesPrecedence", "Sizeable" }),
			new ClassInfo("IfcMember", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcMemberType", "IfcBuildingElementType", ClassType.Concrete, new[] { "BRACE", "CHORD", "COLLAR", "MEMBER", "MULLION", "PLATE", "POST", "PURLIN", "RAFTER", "STRINGER", "STRUT", "STUD", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPlate", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcPlateType", "IfcBuildingElementType", ClassType.Concrete, new[] { "CURTAIN_PANEL", "SHEET", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRailing", "IfcBuildingElement", ClassType.Concrete, new[] { "HANDRAIL", "GUARDRAIL", "BALUSTRADE", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcRailingType", "IfcBuildingElementType", ClassType.Concrete, new[] { "HANDRAIL", "GUARDRAIL", "BALUSTRADE", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRamp", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "ShapeType" }),
			new ClassInfo("IfcRampFlight", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcRampFlightType", "IfcBuildingElementType", ClassType.Concrete, new[] { "STRAIGHT", "SPIRAL", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRelConnectsPathElements", "IfcRelConnectsElements", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement", "RelatingPriorities", "RelatedPriorities", "RelatedConnectionType", "RelatingConnectionType" }),
			new ClassInfo("IfcRelConnectsElements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement" }),
			new ClassInfo("IfcRoof", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "ShapeType" }),
			new ClassInfo("IfcSlab", "IfcBuildingElement", ClassType.Concrete, new[] { "FLOOR", "ROOF", "LANDING", "BASESLAB", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSlabType", "IfcBuildingElementType", ClassType.Concrete, new[] { "FLOOR", "ROOF", "LANDING", "BASESLAB", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcStair", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "ShapeType" }),
			new ClassInfo("IfcStairFlight", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "NumberOfRiser", "NumberOfTreads", "RiserHeight", "TreadLength" }),
			new ClassInfo("IfcStairFlightType", "IfcBuildingElementType", ClassType.Concrete, new[] { "STRAIGHT", "WINDER", "SPIRAL", "CURVED", "FREEFORM", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcWall", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcWallStandardCase", "IfcWall", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcWallType", "IfcBuildingElementType", ClassType.Concrete, new[] { "STANDARD", "POLYGONAL", "SHEAR", "ELEMENTEDWALL", "PLUMBINGWALL", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcWindow", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth" }),
			new ClassInfo("IfcWindowLiningProperties", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "LiningDepth", "LiningThickness", "TransomThickness", "MullionThickness", "FirstTransomOffset", "SecondTransomOffset", "FirstMullionOffset", "SecondMullionOffset", "ShapeAspectStyle" }),
			new ClassInfo("IfcWindowPanelProperties", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "OperationType", "PanelPosition", "FrameDepth", "FrameThickness", "ShapeAspectStyle" }),
			new ClassInfo("IfcWindowStyle", "IfcTypeProduct", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ConstructionType", "OperationType", "ParameterTakesPrecedence", "Sizeable" }),
			new ClassInfo("IfcAsset", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "AssetID", "OriginalValue", "CurrentValue", "TotalReplacementCost", "Owner", "User", "ResponsiblePerson", "IncorporationDate", "DepreciatedValue" }),
			new ClassInfo("IfcFurnitureType", "IfcFurnishingElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "AssemblyPlace" }),
			new ClassInfo("IfcFurnishingElementType", "IfcElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcInventory", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "InventoryType", "Jurisdiction", "ResponsiblePersons", "LastUpdateDate", "CurrentValue", "OriginalValue" }),
			new ClassInfo("IfcOccupant", "IfcActor", ClassType.Concrete, new[] { "ASSIGNEE", "ASSIGNOR", "LESSEE", "LESSOR", "LETTINGAGENT", "OWNER", "TENANT", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheActor", "PredefinedType" }),
			new ClassInfo("IfcActor", "IfcObject", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheActor" }),
			new ClassInfo("IfcSystemFurnitureElementType", "IfcFurnishingElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcRelOccupiesSpaces", "IfcRelAssignsToActor", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingActor", "ActingRole" }),
			new ClassInfo("IfcRelAssignsToActor", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingActor", "ActingRole" }),
			new ClassInfo("IfcServiceLife", "IfcControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ServiceLifeType", "ServiceLifeDuration" }),
			new ClassInfo("IfcServiceLifeFactor", "IfcPropertySetDefinition", ClassType.Concrete, new[] { "A_QUALITYOFCOMPONENTS", "B_DESIGNLEVEL", "C_WORKEXECUTIONLEVEL", "D_INDOORENVIRONMENT", "E_OUTDOORENVIRONMENT", "F_INUSECONDITIONS", "G_MAINTENANCELEVEL", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "PredefinedType", "UpperValue", "MostUsedValue", "LowerValue" }),
			new ClassInfo("IfcArbitraryClosedProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "OuterCurve" }),
			new ClassInfo("IfcProfileDef", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName" }),
			new ClassInfo("IfcArbitraryOpenProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Curve" }),
			new ClassInfo("IfcArbitraryProfileDefWithVoids", "IfcArbitraryClosedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "OuterCurve", "InnerCurves" }),
			new ClassInfo("IfcAsymmetricIShapeProfileDef", "IfcIShapeProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "OverallWidth", "OverallDepth", "WebThickness", "FlangeThickness", "FilletRadius", "TopFlangeWidth", "TopFlangeThickness", "TopFlangeFilletRadius", "CentreOfGravityInY" }),
			new ClassInfo("IfcIShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "OverallWidth", "OverallDepth", "WebThickness", "FlangeThickness", "FilletRadius" }),
			new ClassInfo("IfcParameterizedProfileDef", "IfcProfileDef", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position" }),
			new ClassInfo("IfcCenterLineProfileDef", "IfcArbitraryOpenProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Curve", "Thickness" }),
			new ClassInfo("IfcCircleHollowProfileDef", "IfcCircleProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Radius", "WallThickness" }),
			new ClassInfo("IfcCircleProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Radius" }),
			new ClassInfo("IfcCompositeProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Profiles", "Label" }),
			new ClassInfo("IfcCShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "Width", "WallThickness", "Girth", "InternalFilletRadius", "CentreOfGravityInX" }),
			new ClassInfo("IfcDerivedProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "ParentProfile", "Operator", "Label" }),
			new ClassInfo("IfcEllipseProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "SemiAxis1", "SemiAxis2" }),
			new ClassInfo("IfcLShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "Width", "Thickness", "FilletRadius", "EdgeRadius", "LegSlope", "CentreOfGravityInX", "CentreOfGravityInY" }),
			new ClassInfo("IfcRectangleHollowProfileDef", "IfcRectangleProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "XDim", "YDim", "WallThickness", "InnerFilletRadius", "OuterFilletRadius" }),
			new ClassInfo("IfcRectangleProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "XDim", "YDim" }),
			new ClassInfo("IfcRoundedRectangleProfileDef", "IfcRectangleProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "XDim", "YDim", "RoundingRadius" }),
			new ClassInfo("IfcTrapeziumProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "BottomXDim", "TopXDim", "YDim", "TopXOffset" }),
			new ClassInfo("IfcTShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "FlangeEdgeRadius", "WebEdgeRadius", "WebSlope", "FlangeSlope", "CentreOfGravityInY" }),
			new ClassInfo("IfcUShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "EdgeRadius", "FlangeSlope", "CentreOfGravityInX" }),
			new ClassInfo("IfcZShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "EdgeRadius" }),
			new ClassInfo("IfcCraneRailAShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "OverallHeight", "BaseWidth2", "Radius", "HeadWidth", "HeadDepth2", "HeadDepth3", "WebThickness", "BaseWidth4", "BaseDepth1", "BaseDepth2", "BaseDepth3", "CentreOfGravityInY" }),
			new ClassInfo("IfcCraneRailFShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "OverallHeight", "HeadWidth", "Radius", "HeadDepth2", "HeadDepth3", "WebThickness", "BaseDepth1", "BaseDepth2", "CentreOfGravityInY" }),
			new ClassInfo("IfcApplication", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.UtilityResource", new[] { "ApplicationDeveloper", "Version", "ApplicationFullName", "ApplicationIdentifier" }),
			new ClassInfo("IfcOwnerHistory", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.UtilityResource", new[] { "OwningUser", "OwningApplication", "State", "ChangeAction", "LastModifiedDate", "LastModifyingUser", "LastModifyingApplication", "CreationDate" }),
			new ClassInfo("IfcTable", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.UtilityResource", new[] { "Name", "Rows" }),
			new ClassInfo("IfcTableRow", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.UtilityResource", new[] { "RowCells", "IsHeading" }),
			new ClassInfo("IfcGloballyUniqueId", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.UtilityResource", new[] { "" }),
			new ClassInfo("IfcAnnotationFillArea", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "OuterBoundary", "InnerBoundaries" }),
			new ClassInfo("IfcTextLiteral", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Literal", "Placement", "Path" }),
			new ClassInfo("IfcTextLiteralWithExtent", "IfcTextLiteral", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Literal", "Placement", "Path", "Extent", "BoxAlignment" }),
			new ClassInfo("IfcTextureCoordinate", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "" }),
			new ClassInfo("IfcTextureCoordinateGenerator", "IfcTextureCoordinate", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Mode", "Parameter" }),
			new ClassInfo("IfcTextureMap", "IfcTextureCoordinate", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "TextureMaps" }),
			new ClassInfo("IfcTextureVertex", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Coordinates" }),
			new ClassInfo("IfcAnnotationFillAreaOccurrence", "IfcAnnotationOccurrence", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Item", "Styles", "Name", "FillStyleTarget", "GlobalOrLocal" }),
			new ClassInfo("IfcAnnotationSurface", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Item", "TextureCoordinates" }),
			new ClassInfo("IfcAnnotationSurfaceOccurrence", "IfcAnnotationOccurrence", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Item", "Styles", "Name" }),
			new ClassInfo("IfcAnnotationTextOccurrence", "IfcAnnotationOccurrence", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Item", "Styles", "Name" }),
			new ClassInfo("IfcBoxAlignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "" }),
			new ClassInfo("IfcDefinedSymbol", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Definition", "Target" }),
			new ClassInfo("IfcExternallyDefinedSymbol", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "Location", "ItemReference", "Name" }),
			new ClassInfo("IfcVertexBasedTextureMap", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.PresentationDefinitionResource", new[] { "TextureVertices", "TexturePoints" }),
			new ClassInfo("IfcAnnotation", "IfcProduct", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcBuilding", "IfcSpatialStructureElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "ElevationOfRefHeight", "ElevationOfTerrain", "BuildingAddress" }),
			new ClassInfo("IfcSpatialStructureElement", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType" }),
			new ClassInfo("IfcBuildingElementProxy", "IfcBuildingElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "CompositionType" }),
			new ClassInfo("IfcBuildingElementProxyType", "IfcBuildingElementType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBuildingStorey", "IfcSpatialStructureElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "Elevation" }),
			new ClassInfo("IfcCovering", "IfcBuildingElement", ClassType.Concrete, new[] { "CEILING", "FLOORING", "CLADDING", "ROOFING", "INSULATION", "MEMBRANE", "SLEEVING", "WRAPPING", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCoveringType", "IfcBuildingElementType", ClassType.Concrete, new[] { "CEILING", "FLOORING", "CLADDING", "ROOFING", "INSULATION", "MEMBRANE", "SLEEVING", "WRAPPING", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElementAssembly", "IfcElement", ClassType.Concrete, new[] { "ACCESSORY_ASSEMBLY", "ARCH", "BEAM_GRID", "BRACED_FRAME", "GIRDER", "REINFORCEMENT_UNIT", "RIGID_FRAME", "SLAB_FIELD", "TRUSS", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "AssemblyPlace", "PredefinedType" }),
			new ClassInfo("IfcElementQuantity", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "MethodOfMeasurement", "Quantities" }),
			new ClassInfo("IfcFeatureElementAddition", "IfcFeatureElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFurnishingElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcGrid", "IfcProduct", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "UAxes", "VAxes", "WAxes" }),
			new ClassInfo("IfcOpeningElement", "IfcFeatureElementSubtraction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcProjectionElement", "IfcFeatureElementAddition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcRelAssociatesMaterial", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingMaterial" }),
			new ClassInfo("IfcRelConnectsPorts", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingPort", "RelatedPort", "RealizingElement" }),
			new ClassInfo("IfcRelConnectsPortToElement", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingPort", "RelatedElement" }),
			new ClassInfo("IfcRelConnectsWithRealizingElements", "IfcRelConnectsElements", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement", "RealizingElements", "ConnectionType" }),
			new ClassInfo("IfcRelContainedInSpatialStructure", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedElements", "RelatingStructure" }),
			new ClassInfo("IfcRelCoversBldgElements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingBuildingElement", "RelatedCoverings" }),
			new ClassInfo("IfcRelCoversSpaces", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedSpace", "RelatedCoverings" }),
			new ClassInfo("IfcRelFillsElement", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingOpeningElement", "RelatedBuildingElement" }),
			new ClassInfo("IfcRelProjectsElement", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedFeatureElement" }),
			new ClassInfo("IfcRelReferencedInSpatialStructure", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedElements", "RelatingStructure" }),
			new ClassInfo("IfcRelServicesBuildings", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSystem", "RelatedBuildings" }),
			new ClassInfo("IfcRelSpaceBoundary", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedBuildingElement", "ConnectionGeometry", "PhysicalOrVirtualBoundary", "InternalOrExternalBoundary" }),
			new ClassInfo("IfcRelVoidsElement", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingBuildingElement", "RelatedOpeningElement" }),
			new ClassInfo("IfcSite", "IfcSpatialStructureElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "RefLatitude", "RefLongitude", "RefElevation", "LandTitleNumber", "SiteAddress" }),
			new ClassInfo("IfcSpace", "IfcSpatialStructureElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "InteriorOrExteriorSpace", "ElevationWithFlooring" }),
			new ClassInfo("IfcSpaceType", "IfcSpatialStructureElementType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSpatialStructureElementType", "IfcElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcTransportElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OperationType", "CapacityByWeight", "CapacityByNumber" }),
			new ClassInfo("IfcTransportElementType", "IfcElementType", ClassType.Concrete, new[] { "ELEVATOR", "ESCALATOR", "MOVINGWALKWAY", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcVirtualElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcZone", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcElectricalElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcEquipmentElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcProject", "IfcObject", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "Phase", "RepresentationContexts", "UnitsInContext" }),
			new ClassInfo("IfcPropertySet", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "HasProperties" }),
			new ClassInfo("IfcProxy", "IfcProduct", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "ProxyType", "Tag" }),
			new ClassInfo("IfcRelAggregates", "IfcRelDecomposes", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingObject", "RelatedObjects" }),
			new ClassInfo("IfcRelDecomposes", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingObject", "RelatedObjects" }),
			new ClassInfo("IfcRelAssignsToGroup", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingGroup" }),
			new ClassInfo("IfcRelAssignsToProcess", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingProcess", "QuantityInProcess" }),
			new ClassInfo("IfcRelAssignsToProduct", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingProduct" }),
			new ClassInfo("IfcRelAssignsToResource", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingResource" }),
			new ClassInfo("IfcRelAssociatesClassification", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingClassification" }),
			new ClassInfo("IfcRelAssociatesDocument", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingDocument" }),
			new ClassInfo("IfcRelAssociatesLibrary", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingLibrary" }),
			new ClassInfo("IfcRelDefines", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects" }),
			new ClassInfo("IfcRelDefinesByProperties", "IfcRelDefines", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingPropertyDefinition" }),
			new ClassInfo("IfcRelDefinesByType", "IfcRelDefines", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingType" }),
			new ClassInfo("IfcRelNests", "IfcRelDecomposes", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingObject", "RelatedObjects" }),
			new ClassInfo("IfcRelSequence", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingProcess", "RelatedProcess", "TimeLag", "SequenceType" }),
			new ClassInfo("IfcResource", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcRelOverridesProperties", "IfcRelDefinesByProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingPropertyDefinition", "OverridingProperties" }),
			new ClassInfo("IfcAirTerminalBoxType", "IfcFlowControllerType", ClassType.Concrete, new[] { "CONSTANTFLOW", "VARIABLEFLOWPRESSUREDEPENDANT", "VARIABLEFLOWPRESSUREINDEPENDANT", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcAirTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "GRILLE", "REGISTER", "DIFFUSER", "EYEBALL", "IRIS", "LINEARGRILLE", "LINEARDIFFUSER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcAirToAirHeatRecoveryType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "FIXEDPLATECOUNTERFLOWEXCHANGER", "FIXEDPLATECROSSFLOWEXCHANGER", "FIXEDPLATEPARALLELFLOWEXCHANGER", "ROTARYWHEEL", "RUNAROUNDCOILLOOP", "HEATPIPE", "TWINTOWERENTHALPYRECOVERYLOOPS", "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS", "THERMOSIPHONCOILTYPEHEATEXCHANGERS", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBoilerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "WATER", "STEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcChillerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "AIRCOOLED", "WATERCOOLED", "HEATRECOVERY", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCoilType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DXCOOLINGCOIL", "WATERCOOLINGCOIL", "STEAMHEATINGCOIL", "WATERHEATINGCOIL", "ELECTRICHEATINGCOIL", "GASHEATINGCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCompressorType", "IfcFlowMovingDeviceType", ClassType.Concrete, new[] { "DYNAMIC", "RECIPROCATING", "ROTARY", "SCROLL", "TROCHOIDAL", "SINGLESTAGE", "BOOSTER", "OPENTYPE", "HERMETIC", "SEMIHERMETIC", "WELDEDSHELLHERMETIC", "ROLLINGPISTON", "ROTARYVANE", "SINGLESCREW", "TWINSCREW", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCondenserType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "WATERCOOLEDSHELLTUBE", "WATERCOOLEDSHELLCOIL", "WATERCOOLEDTUBEINTUBE", "WATERCOOLEDBRAZEDPLATE", "AIRCOOLED", "EVAPORATIVECOOLED", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCooledBeamType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "ACTIVE", "PASSIVE", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCoolingTowerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "NATURALDRAFT", "MECHANICALINDUCEDDRAFT", "MECHANICALFORCEDDRAFT", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDamperType", "IfcFlowControllerType", ClassType.Concrete, new[] { "CONTROLDAMPER", "FIREDAMPER", "SMOKEDAMPER", "FIRESMOKEDAMPER", "BACKDRAFTDAMPER", "RELIEFDAMPER", "BLASTDAMPER", "GRAVITYDAMPER", "GRAVITYRELIEFDAMPER", "BALANCINGDAMPER", "FUMEHOODEXHAUST", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDuctFittingType", "IfcFlowFittingType", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "OBSTRUCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDuctSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "RIGIDSEGMENT", "FLEXIBLESEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDuctSilencerType", "IfcFlowTreatmentDeviceType", ClassType.Concrete, new[] { "FLATOVAL", "RECTANGULAR", "ROUND", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcEvaporativeCoolerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER", "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER", "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER", "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER", "DIRECTEVAPORATIVEAIRWASHER", "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER", "INDIRECTEVAPORATIVEWETCOIL", "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER", "INDIRECTDIRECTCOMBINATION", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcEvaporatorType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DIRECTEXPANSIONSHELLANDTUBE", "DIRECTEXPANSIONTUBEINTUBE", "DIRECTEXPANSIONBRAZEDPLATE", "FLOODEDSHELLANDTUBE", "SHELLANDCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFanType", "IfcFlowMovingDeviceType", ClassType.Concrete, new[] { "CENTRIFUGALFORWARDCURVED", "CENTRIFUGALRADIAL", "CENTRIFUGALBACKWARDINCLINEDCURVED", "CENTRIFUGALAIRFOIL", "TUBEAXIAL", "VANEAXIAL", "PROPELLORAXIAL", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFilterType", "IfcFlowTreatmentDeviceType", ClassType.Concrete, new[] { "AIRPARTICLEFILTER", "ODORFILTER", "OILFILTER", "STRAINER", "WATERFILTER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFlowMeterType", "IfcFlowControllerType", ClassType.Concrete, new[] { "ELECTRICMETER", "ENERGYMETER", "FLOWMETER", "GASMETER", "OILMETER", "WATERMETER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcGasTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "GASAPPLIANCE", "GASBOOSTER", "GASBURNER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcHeatExchangerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "PLATE", "SHELLANDTUBE", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcHumidifierType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "STEAMINJECTION", "ADIABATICAIRWASHER", "ADIABATICPAN", "ADIABATICWETTEDELEMENT", "ADIABATICATOMIZING", "ADIABATICULTRASONIC", "ADIABATICRIGIDMEDIA", "ADIABATICCOMPRESSEDAIRNOZZLE", "ASSISTEDELECTRIC", "ASSISTEDNATURALGAS", "ASSISTEDPROPANE", "ASSISTEDBUTANE", "ASSISTEDSTEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPipeFittingType", "IfcFlowFittingType", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "OBSTRUCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPipeSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "FLEXIBLESEGMENT", "RIGIDSEGMENT", "GUTTER", "SPOOL", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPumpType", "IfcFlowMovingDeviceType", ClassType.Concrete, new[] { "CIRCULATOR", "ENDSUCTION", "SPLITCASE", "VERTICALINLINE", "VERTICALTURBINE", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSpaceHeaterType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "SECTIONALRADIATOR", "PANELRADIATOR", "TUBULARRADIATOR", "CONVECTOR", "BASEBOARDHEATER", "FINNEDTUBEUNIT", "UNITHEATER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTankType", "IfcFlowStorageDeviceType", ClassType.Concrete, new[] { "PREFORMED", "SECTIONAL", "EXPANSION", "PRESSUREVESSEL", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTubeBundleType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "FINNED", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcUnitaryEquipmentType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "AIRHANDLER", "AIRCONDITIONINGUNIT", "SPLITSYSTEM", "ROOFTOPUNIT", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcValveType", "IfcFlowControllerType", ClassType.Concrete, new[] { "AIRRELEASE", "ANTIVACUUM", "CHANGEOVER", "CHECK", "COMMISSIONING", "DIVERTING", "DRAWOFFCOCK", "DOUBLECHECK", "DOUBLEREGULATING", "FAUCET", "FLUSHING", "GASCOCK", "GASTAP", "ISOLATING", "MIXING", "PRESSUREREDUCING", "PRESSURERELIEF", "REGULATING", "SAFETYCUTOFF", "STEAMTRAP", "STOPCOCK", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcVibrationIsolatorType", "IfcDiscreteAccessoryType", ClassType.Concrete, new[] { "COMPRESSION", "SPRING", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.HVACDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("Ifc2DCompositeCurve", "IfcCompositeCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Segments", "SelfIntersect" }),
			new ClassInfo("IfcCompositeCurve", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Segments", "SelfIntersect" }),
			new ClassInfo("IfcBoundedCurve", "IfcCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcCurve", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcAxis1Placement", "IfcPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Location", "Axis" }),
			new ClassInfo("IfcPlacement", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Location" }),
			new ClassInfo("IfcAxis2Placement2D", "IfcPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Location", "RefDirection" }),
			new ClassInfo("IfcAxis2Placement3D", "IfcPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Location", "Axis", "RefDirection" }),
			new ClassInfo("IfcBezierCurve", "IfcBSplineCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect" }),
			new ClassInfo("IfcBSplineCurve", "IfcBoundedCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect" }),
			new ClassInfo("IfcBoundedSurface", "IfcSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcSurface", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcCartesianPoint", "IfcPoint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Coordinates" }),
			new ClassInfo("IfcPoint", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcCartesianTransformationOperator", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale" }),
			new ClassInfo("IfcCartesianTransformationOperator2D", "IfcCartesianTransformationOperator", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale" }),
			new ClassInfo("IfcCartesianTransformationOperator2DnonUniform", "IfcCartesianTransformationOperator2D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale", "Scale2" }),
			new ClassInfo("IfcCartesianTransformationOperator3D", "IfcCartesianTransformationOperator", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale", "Axis3" }),
			new ClassInfo("IfcCartesianTransformationOperator3DnonUniform", "IfcCartesianTransformationOperator3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale", "Axis3", "Scale2", "Scale3" }),
			new ClassInfo("IfcCircle", "IfcConic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Position", "Radius" }),
			new ClassInfo("IfcConic", "IfcCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Position" }),
			new ClassInfo("IfcCompositeCurveSegment", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Transition", "SameSense", "ParentCurve" }),
			new ClassInfo("IfcCurveBoundedPlane", "IfcBoundedSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "BasisSurface", "OuterBoundary", "InnerBoundaries" }),
			new ClassInfo("IfcDimensionCount", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcDirection", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "DirectionRatios" }),
			new ClassInfo("IfcElementarySurface", "IfcSurface", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Position" }),
			new ClassInfo("IfcEllipse", "IfcConic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Position", "SemiAxis1", "SemiAxis2" }),
			new ClassInfo("IfcLine", "IfcCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Pnt", "Dir" }),
			new ClassInfo("IfcMappedItem", "IfcRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "MappingSource", "MappingTarget" }),
			new ClassInfo("IfcOffsetCurve2D", "IfcCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "BasisCurve", "Distance", "SelfIntersect" }),
			new ClassInfo("IfcOffsetCurve3D", "IfcCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "BasisCurve", "Distance", "SelfIntersect", "RefDirection" }),
			new ClassInfo("IfcPlane", "IfcElementarySurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Position" }),
			new ClassInfo("IfcPointOnCurve", "IfcPoint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "BasisCurve", "PointParameter" }),
			new ClassInfo("IfcPointOnSurface", "IfcPoint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "BasisSurface", "PointParameterU", "PointParameterV" }),
			new ClassInfo("IfcPolyline", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Points" }),
			new ClassInfo("IfcRationalBezierCurve", "IfcBezierCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect", "WeightsData" }),
			new ClassInfo("IfcRectangularTrimmedSurface", "IfcBoundedSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "BasisSurface", "U1", "V1", "U2", "V2", "Usense", "Vsense" }),
			new ClassInfo("IfcRepresentationMap", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "MappingOrigin", "MappedRepresentation" }),
			new ClassInfo("IfcSurfaceOfLinearExtrusion", "IfcSweptSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "SweptCurve", "Position", "ExtrudedDirection", "Depth" }),
			new ClassInfo("IfcSweptSurface", "IfcSurface", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "SweptCurve", "Position" }),
			new ClassInfo("IfcSurfaceOfRevolution", "IfcSweptSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "SweptCurve", "Position", "AxisPosition" }),
			new ClassInfo("IfcTrimmedCurve", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "BasisCurve", "Trim1", "Trim2", "SenseAgreement", "MasterRepresentation" }),
			new ClassInfo("IfcVector", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometryResource", new[] { "Orientation", "Magnitude" }),
			new ClassInfo("IfcBlock", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Position", "XLength", "YLength", "ZLength" }),
			new ClassInfo("IfcCsgPrimitive3D", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Position" }),
			new ClassInfo("IfcBooleanClippingResult", "IfcBooleanResult", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Operator", "FirstOperand", "SecondOperand" }),
			new ClassInfo("IfcBooleanResult", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Operator", "FirstOperand", "SecondOperand" }),
			new ClassInfo("IfcBoundingBox", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Corner", "XDim", "YDim", "ZDim" }),
			new ClassInfo("IfcBoxedHalfSpace", "IfcHalfSpaceSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "BaseSurface", "AgreementFlag", "Enclosure" }),
			new ClassInfo("IfcHalfSpaceSolid", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "BaseSurface", "AgreementFlag" }),
			new ClassInfo("IfcCsgSolid", "IfcSolidModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "TreeRootExpression" }),
			new ClassInfo("IfcSolidModel", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "" }),
			new ClassInfo("IfcExtrudedAreaSolid", "IfcSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "SweptArea", "Position", "ExtrudedDirection", "Depth" }),
			new ClassInfo("IfcSweptAreaSolid", "IfcSolidModel", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "SweptArea", "Position" }),
			new ClassInfo("IfcFaceBasedSurfaceModel", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "FbsmFaces" }),
			new ClassInfo("IfcFacetedBrep", "IfcManifoldSolidBrep", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Outer" }),
			new ClassInfo("IfcManifoldSolidBrep", "IfcSolidModel", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Outer" }),
			new ClassInfo("IfcFacetedBrepWithVoids", "IfcManifoldSolidBrep", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Outer", "Voids" }),
			new ClassInfo("IfcGeometricCurveSet", "IfcGeometricSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Elements" }),
			new ClassInfo("IfcGeometricSet", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Elements" }),
			new ClassInfo("IfcPolygonalBoundedHalfSpace", "IfcHalfSpaceSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "BaseSurface", "AgreementFlag", "Position", "PolygonalBoundary" }),
			new ClassInfo("IfcRectangularPyramid", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Position", "XLength", "YLength", "Height" }),
			new ClassInfo("IfcRevolvedAreaSolid", "IfcSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "SweptArea", "Position", "Axis", "Angle" }),
			new ClassInfo("IfcRightCircularCone", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Position", "Height", "BottomRadius" }),
			new ClassInfo("IfcRightCircularCylinder", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Position", "Height", "Radius" }),
			new ClassInfo("IfcSectionedSpine", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "SpineCurve", "CrossSections", "CrossSectionPositions" }),
			new ClassInfo("IfcShellBasedSurfaceModel", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "SbsmBoundary" }),
			new ClassInfo("IfcSphere", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Position", "Radius" }),
			new ClassInfo("IfcSurfaceCurveSweptAreaSolid", "IfcSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "SweptArea", "Position", "Directrix", "StartParam", "EndParam", "ReferenceSurface" }),
			new ClassInfo("IfcSweptDiskSolid", "IfcSolidModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricModelResource", new[] { "Directrix", "Radius", "InnerRadius", "StartParam", "EndParam" }),
			new ClassInfo("IfcConnectionCurveGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricConstraintResource", new[] { "CurveOnRelatingElement", "CurveOnRelatedElement" }),
			new ClassInfo("IfcConnectionGeometry", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometricConstraintResource", new[] { "" }),
			new ClassInfo("IfcConnectionPointEccentricity", "IfcConnectionPointGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricConstraintResource", new[] { "PointOnRelatingElement", "PointOnRelatedElement", "EccentricityInX", "EccentricityInY", "EccentricityInZ" }),
			new ClassInfo("IfcConnectionPointGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricConstraintResource", new[] { "PointOnRelatingElement", "PointOnRelatedElement" }),
			new ClassInfo("IfcConnectionPortGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricConstraintResource", new[] { "LocationAtRelatingElement", "LocationAtRelatedElement", "ProfileOfPort" }),
			new ClassInfo("IfcConnectionSurfaceGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricConstraintResource", new[] { "SurfaceOnRelatingElement", "SurfaceOnRelatedElement" }),
			new ClassInfo("IfcGridAxis", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricConstraintResource", new[] { "AxisTag", "AxisCurve", "SameSense" }),
			new ClassInfo("IfcGridPlacement", "IfcObjectPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricConstraintResource", new[] { "PlacementLocation", "PlacementRefDirection" }),
			new ClassInfo("IfcObjectPlacement", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.GeometricConstraintResource", new[] { "" }),
			new ClassInfo("IfcLocalPlacement", "IfcObjectPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricConstraintResource", new[] { "PlacementRelTo", "RelativePlacement" }),
			new ClassInfo("IfcVirtualGridIntersection", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.GeometricConstraintResource", new[] { "IntersectingAxes", "OffsetDistances" }),
			new ClassInfo("IfcActionRequest", "IfcControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.FacilitiesMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "RequestID" }),
			new ClassInfo("IfcCondition", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.FacilitiesMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcConditionCriterion", "IfcControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.FacilitiesMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Criterion", "CriterionDateTime" }),
			new ClassInfo("IfcEquipmentStandard", "IfcControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.FacilitiesMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcFurnitureStandard", "IfcControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.FacilitiesMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcMove", "IfcTask", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.FacilitiesMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TaskId", "Status", "WorkMethod", "IsMilestone", "Priority", "MoveFrom", "MoveTo", "PunchList" }),
			new ClassInfo("IfcOrderAction", "IfcTask", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.FacilitiesMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TaskId", "Status", "WorkMethod", "IsMilestone", "Priority", "ActionID" }),
			new ClassInfo("IfcPermit", "IfcControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.FacilitiesMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PermitID" }),
			new ClassInfo("IfcClassification", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "Source", "Edition", "EditionDate", "Name" }),
			new ClassInfo("IfcClassificationItem", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "Notation", "ItemOf", "Title" }),
			new ClassInfo("IfcClassificationItemRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "RelatingItem", "RelatedItems" }),
			new ClassInfo("IfcClassificationNotation", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "NotationFacets" }),
			new ClassInfo("IfcClassificationNotationFacet", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "NotationValue" }),
			new ClassInfo("IfcClassificationReference", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "Location", "ItemReference", "Name", "ReferencedSource" }),
			new ClassInfo("IfcDocumentElectronicFormat", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "FileExtension", "MimeContentType", "MimeSubtype" }),
			new ClassInfo("IfcDocumentInformation", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "DocumentId", "Name", "Description", "DocumentReferences", "Purpose", "IntendedUse", "Scope", "Revision", "DocumentOwner", "Editors", "CreationTime", "LastRevisionTime", "ElectronicFormat", "ValidFrom", "ValidUntil", "Confidentiality", "Status" }),
			new ClassInfo("IfcDocumentInformationRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "RelatingDocument", "RelatedDocuments", "RelationshipType" }),
			new ClassInfo("IfcDocumentReference", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "Location", "ItemReference", "Name" }),
			new ClassInfo("IfcLibraryInformation", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "Name", "Version", "Publisher", "VersionDate", "LibraryReference" }),
			new ClassInfo("IfcLibraryReference", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ExternalReferenceResource", new[] { "Location", "ItemReference", "Name" }),
			new ClassInfo("IfcCableCarrierFittingType", "IfcFlowFittingType", ClassType.Concrete, new[] { "BEND", "CROSS", "REDUCER", "TEE", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCableCarrierSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "CABLELADDERSEGMENT", "CABLETRAYSEGMENT", "CABLETRUNKINGSEGMENT", "CONDUITSEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCableSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "CABLESEGMENT", "CONDUCTORSEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricalCircuit", "IfcSystem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcElectricApplianceType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "COMPUTER", "DIRECTWATERHEATER", "DISHWASHER", "ELECTRICCOOKER", "ELECTRICHEATER", "FACSIMILE", "FREESTANDINGFAN", "FREEZER", "FRIDGE_FREEZER", "HANDDRYER", "INDIRECTWATERHEATER", "MICROWAVE", "PHOTOCOPIER", "PRINTER", "REFRIGERATOR", "RADIANTHEATER", "SCANNER", "TELEPHONE", "TUMBLEDRYER", "TV", "VENDINGMACHINE", "WASHINGMACHINE", "WATERHEATER", "WATERCOOLER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricDistributionPoint", "IfcFlowController", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "DistributionPointFunction", "UserDefinedFunction" }),
			new ClassInfo("IfcElectricFlowStorageDeviceType", "IfcFlowStorageDeviceType", ClassType.Concrete, new[] { "BATTERY", "CAPACITORBANK", "HARMONICFILTER", "INDUCTORBANK", "UPS", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricGeneratorType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricHeaterType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "ELECTRICPOINTHEATER", "ELECTRICCABLEHEATER", "ELECTRICMATHEATER", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricMotorType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DC", "INDUCTION", "POLYPHASE", "RELUCTANCESYNCHRONOUS", "SYNCHRONOUS", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricTimeControlType", "IfcFlowControllerType", ClassType.Concrete, new[] { "TIMECLOCK", "TIMEDELAY", "RELAY", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcJunctionBoxType", "IfcFlowFittingType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcLampType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "COMPACTFLUORESCENT", "FLUORESCENT", "HIGHPRESSUREMERCURY", "HIGHPRESSURESODIUM", "METALHALIDE", "TUNGSTENFILAMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcLightFixtureType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "POINTSOURCE", "DIRECTIONSOURCE", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcMotorConnectionType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "BELTDRIVE", "COUPLING", "DIRECTDRIVE", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcOutletType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "AUDIOVISUALOUTLET", "COMMUNICATIONSOUTLET", "POWEROUTLET", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcProtectiveDeviceType", "IfcFlowControllerType", ClassType.Concrete, new[] { "FUSEDISCONNECTOR", "CIRCUITBREAKER", "EARTHFAILUREDEVICE", "RESIDUALCURRENTCIRCUITBREAKER", "RESIDUALCURRENTSWITCH", "VARISTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSwitchingDeviceType", "IfcFlowControllerType", ClassType.Concrete, new[] { "CONTACTOR", "EMERGENCYSTOP", "STARTER", "SWITCHDISCONNECTOR", "TOGGLESWITCH", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTransformerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "CURRENT", "FREQUENCY", "VOLTAGE", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCalendarDate", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.DateTimeResource", new[] { "DayComponent", "MonthComponent", "YearComponent" }),
			new ClassInfo("IfcCoordinatedUniversalTimeOffset", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.DateTimeResource", new[] { "HourOffset", "MinuteOffset", "Sense" }),
			new ClassInfo("IfcDateAndTime", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.DateTimeResource", new[] { "DateComponent", "TimeComponent" }),
			new ClassInfo("IfcDayInMonthNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcDaylightSavingHour", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcHourInDay", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcLocalTime", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.DateTimeResource", new[] { "HourComponent", "MinuteComponent", "SecondComponent", "Zone", "DaylightSavingOffset" }),
			new ClassInfo("IfcMinuteInHour", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcMonthInYearNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcSecondInMinute", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcYearNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcAppliedValue", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.CostResource", new[] { "Name", "Description", "AppliedValue", "UnitBasis", "ApplicableDate", "FixedUntilDate" }),
			new ClassInfo("IfcAppliedValueRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.CostResource", new[] { "ComponentOfTotal", "Components", "ArithmeticOperator", "Name", "Description" }),
			new ClassInfo("IfcCostValue", "IfcAppliedValue", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.CostResource", new[] { "Name", "Description", "AppliedValue", "UnitBasis", "ApplicableDate", "FixedUntilDate", "CostType", "Condition" }),
			new ClassInfo("IfcCurrencyRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.CostResource", new[] { "RelatingMonetaryUnit", "RelatedMonetaryUnit", "ExchangeRate", "RateDateTime", "RateSource" }),
			new ClassInfo("IfcEnvironmentalImpactValue", "IfcAppliedValue", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.CostResource", new[] { "Name", "Description", "AppliedValue", "UnitBasis", "ApplicableDate", "FixedUntilDate", "ImpactType", "Category", "UserDefinedCategory" }),
			new ClassInfo("IfcReferencesValueDocument", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.CostResource", new[] { "ReferencedDocument", "ReferencingValues", "Name", "Description" }),
			new ClassInfo("IfcPerformanceHistory", "IfcControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ControlExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LifeCyclePhase" }),
			new ClassInfo("IfcRelAssociatesApproval", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ControlExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingApproval" }),
			new ClassInfo("IfcRelAssociatesConstraint", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ControlExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "Intent", "RelatingConstraint" }),
			new ClassInfo("IfcTimeSeriesSchedule", "IfcControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ControlExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ApplicableDates", "TimeSeriesScheduleType", "TimeSeries" }),
			new ClassInfo("IfcConstructionEquipmentResource", "IfcConstructionResource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ResourceIdentifier", "ResourceGroup", "ResourceConsumption", "BaseQuantity" }),
			new ClassInfo("IfcConstructionResource", "IfcResource", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ResourceIdentifier", "ResourceGroup", "ResourceConsumption", "BaseQuantity" }),
			new ClassInfo("IfcConstructionMaterialResource", "IfcConstructionResource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ResourceIdentifier", "ResourceGroup", "ResourceConsumption", "BaseQuantity", "Suppliers", "UsageRatio" }),
			new ClassInfo("IfcConstructionProductResource", "IfcConstructionResource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ResourceIdentifier", "ResourceGroup", "ResourceConsumption", "BaseQuantity" }),
			new ClassInfo("IfcCrewResource", "IfcConstructionResource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ResourceIdentifier", "ResourceGroup", "ResourceConsumption", "BaseQuantity" }),
			new ClassInfo("IfcLaborResource", "IfcConstructionResource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ResourceIdentifier", "ResourceGroup", "ResourceConsumption", "BaseQuantity", "SkillSet" }),
			new ClassInfo("IfcSubContractResource", "IfcConstructionResource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ResourceIdentifier", "ResourceGroup", "ResourceConsumption", "BaseQuantity", "SubContractor", "JobDescription" }),
			new ClassInfo("IfcConstraint", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ConstraintResource", new[] { "Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade" }),
			new ClassInfo("IfcConstraintAggregationRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstraintResource", new[] { "Name", "Description", "RelatingConstraint", "RelatedConstraints", "LogicalAggregator" }),
			new ClassInfo("IfcConstraintClassificationRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstraintResource", new[] { "ClassifiedConstraint", "RelatedClassifications" }),
			new ClassInfo("IfcConstraintRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstraintResource", new[] { "Name", "Description", "RelatingConstraint", "RelatedConstraints" }),
			new ClassInfo("IfcMetric", "IfcConstraint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstraintResource", new[] { "Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade", "Benchmark", "ValueSource", "DataValue" }),
			new ClassInfo("IfcObjective", "IfcConstraint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstraintResource", new[] { "Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade", "BenchmarkValues", "ResultValues", "ObjectiveQualifier", "UserDefinedQualifier" }),
			new ClassInfo("IfcPropertyConstraintRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ConstraintResource", new[] { "RelatingConstraint", "RelatedProperties", "Name", "Description" }),
			new ClassInfo("IfcActuatorType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "ELECTRICACTUATOR", "HANDOPERATEDACTUATOR", "HYDRAULICACTUATOR", "PNEUMATICACTUATOR", "THERMOSTATICACTUATOR", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.BuildingcontrolsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcAlarmType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "BELL", "BREAKGLASSBUTTON", "LIGHT", "MANUALPULLBOX", "SIREN", "WHISTLE", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.BuildingcontrolsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcControllerType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "FLOATING", "PROPORTIONAL", "PROPORTIONALINTEGRAL", "PROPORTIONALINTEGRALDERIVATIVE", "TIMEDTWOPOSITION", "TWOPOSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.BuildingcontrolsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFlowInstrumentType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "PRESSUREGAUGE", "THERMOMETER", "AMMETER", "FREQUENCYMETER", "POWERFACTORMETER", "PHASEANGLEMETER", "VOLTMETER_PEAK", "VOLTMETER_RMS", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.BuildingcontrolsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSensorType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "CO2SENSOR", "FIRESENSOR", "FLOWSENSOR", "GASSENSOR", "HEATSENSOR", "HUMIDITYSENSOR", "LIGHTSENSOR", "MOISTURESENSOR", "MOVEMENTSENSOR", "PRESSURESENSOR", "SMOKESENSOR", "SOUNDSENSOR", "TEMPERATURESENSOR", "USERDEFINED", "NOTDEFINED" }, "Ifc2x3.BuildingcontrolsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPermeableCoveringProperties", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "OperationType", "PanelPosition", "FrameDepth", "FrameThickness", "ShapeAspectStyle" }),
			new ClassInfo("IfcRelInteractionRequirements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "DailyInteraction", "ImportanceRating", "LocationOfInteraction", "RelatedSpaceProgram", "RelatingSpaceProgram" }),
			new ClassInfo("IfcSpaceProgram", "IfcControl", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "SpaceProgramIdentifier", "MaxRequiredArea", "MinRequiredArea", "RequestedLocation", "StandardRequiredArea" }),
			new ClassInfo("IfcApproval", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ApprovalResource", new[] { "Description", "ApprovalDateTime", "ApprovalStatus", "ApprovalLevel", "ApprovalQualifier", "Name", "Identifier" }),
			new ClassInfo("IfcApprovalActorRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ApprovalResource", new[] { "Actor", "Approval", "Role" }),
			new ClassInfo("IfcApprovalPropertyRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ApprovalResource", new[] { "ApprovedProperties", "Approval" }),
			new ClassInfo("IfcApprovalRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ApprovalResource", new[] { "RelatedApproval", "RelatingApproval", "Description", "Name" }),
			new ClassInfo("IfcActorRole", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ActorResource", new[] { "Role", "UserDefinedRole", "Description" }),
			new ClassInfo("IfcAddress", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc2x3.ActorResource", new[] { "Purpose", "Description", "UserDefinedPurpose" }),
			new ClassInfo("IfcOrganization", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ActorResource", new[] { "Id", "Name", "Description", "Roles", "Addresses" }),
			new ClassInfo("IfcOrganizationRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ActorResource", new[] { "Name", "Description", "RelatingOrganization", "RelatedOrganizations" }),
			new ClassInfo("IfcPerson", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ActorResource", new[] { "Id", "FamilyName", "GivenName", "MiddleNames", "PrefixTitles", "SuffixTitles", "Roles", "Addresses" }),
			new ClassInfo("IfcPersonAndOrganization", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ActorResource", new[] { "ThePerson", "TheOrganization", "Roles" }),
			new ClassInfo("IfcPostalAddress", "IfcAddress", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ActorResource", new[] { "Purpose", "Description", "UserDefinedPurpose", "InternalLocation", "AddressLines", "PostalBox", "Town", "Region", "PostalCode", "Country" }),
			new ClassInfo("IfcTelecomAddress", "IfcAddress", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc2x3.ActorResource", new[] { "Purpose", "Description", "UserDefinedPurpose", "TelephoneNumbers", "FacsimileNumbers", "PagerNumber", "ElectronicMailAddresses", "WWWHomePageURL" }),
		};
		return schema;
	}

	private static partial SchemaInfo GetClassesIFC4() 
	{
		var schema = new SchemaInfo(IfcSchemaVersions.Ifc4) {
			new ClassInfo("IfcApplication", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.UtilityResource", new[] { "ApplicationDeveloper", "Version", "ApplicationFullName", "ApplicationIdentifier" }),
			new ClassInfo("IfcGloballyUniqueId", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.UtilityResource", new[] { "" }),
			new ClassInfo("IfcOwnerHistory", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.UtilityResource", new[] { "OwningUser", "OwningApplication", "State", "ChangeAction", "LastModifiedDate", "LastModifyingUser", "LastModifyingApplication", "CreationDate" }),
			new ClassInfo("IfcTable", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.UtilityResource", new[] { "Name", "Rows", "Columns" }),
			new ClassInfo("IfcTableColumn", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.UtilityResource", new[] { "Identifier", "Name", "Description", "Unit", "ReferencePath" }),
			new ClassInfo("IfcTableRow", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.UtilityResource", new[] { "RowCells", "IsHeading" }),
			new ClassInfo("IfcAdvancedFace", "IfcFaceSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "Bounds", "FaceSurface", "SameSense" }),
			new ClassInfo("IfcFaceSurface", "IfcFace", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "Bounds", "FaceSurface", "SameSense" }),
			new ClassInfo("IfcFace", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "Bounds" }),
			new ClassInfo("IfcTopologicalRepresentationItem", "IfcRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "" }),
			new ClassInfo("IfcRepresentationItem", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "" }),
			new ClassInfo("IfcClosedShell", "IfcConnectedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "CfsFaces" }),
			new ClassInfo("IfcConnectedFaceSet", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "CfsFaces" }),
			new ClassInfo("IfcEdge", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "EdgeStart", "EdgeEnd" }),
			new ClassInfo("IfcEdgeCurve", "IfcEdge", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "EdgeStart", "EdgeEnd", "EdgeGeometry", "SameSense" }),
			new ClassInfo("IfcEdgeLoop", "IfcLoop", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "EdgeList" }),
			new ClassInfo("IfcLoop", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "" }),
			new ClassInfo("IfcFaceBound", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "Bound", "Orientation" }),
			new ClassInfo("IfcFaceOuterBound", "IfcFaceBound", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "Bound", "Orientation" }),
			new ClassInfo("IfcOpenShell", "IfcConnectedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "CfsFaces" }),
			new ClassInfo("IfcOrientedEdge", "IfcEdge", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "EdgeStart", "EdgeEnd", "EdgeElement", "Orientation" }),
			new ClassInfo("IfcPath", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "EdgeList" }),
			new ClassInfo("IfcPolyLoop", "IfcLoop", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "Polygon" }),
			new ClassInfo("IfcSubedge", "IfcEdge", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "EdgeStart", "EdgeEnd", "ParentEdge" }),
			new ClassInfo("IfcVertex", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "" }),
			new ClassInfo("IfcVertexLoop", "IfcLoop", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "LoopVertex" }),
			new ClassInfo("IfcVertexPoint", "IfcVertex", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.TopologyResource", new[] { "VertexGeometry" }),
			new ClassInfo("IfcBoundaryCondition", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcBoundaryEdgeCondition", "IfcBoundaryCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "TranslationalStiffnessByLengthX", "TranslationalStiffnessByLengthY", "TranslationalStiffnessByLengthZ", "RotationalStiffnessByLengthX", "RotationalStiffnessByLengthY", "RotationalStiffnessByLengthZ" }),
			new ClassInfo("IfcBoundaryFaceCondition", "IfcBoundaryCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "TranslationalStiffnessByAreaX", "TranslationalStiffnessByAreaY", "TranslationalStiffnessByAreaZ" }),
			new ClassInfo("IfcBoundaryNodeCondition", "IfcBoundaryCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "TranslationalStiffnessX", "TranslationalStiffnessY", "TranslationalStiffnessZ", "RotationalStiffnessX", "RotationalStiffnessY", "RotationalStiffnessZ" }),
			new ClassInfo("IfcBoundaryNodeConditionWarping", "IfcBoundaryNodeCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "TranslationalStiffnessX", "TranslationalStiffnessY", "TranslationalStiffnessZ", "RotationalStiffnessX", "RotationalStiffnessY", "RotationalStiffnessZ", "WarpingStiffness" }),
			new ClassInfo("IfcFailureConnectionCondition", "IfcStructuralConnectionCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "TensionFailureX", "TensionFailureY", "TensionFailureZ", "CompressionFailureX", "CompressionFailureY", "CompressionFailureZ" }),
			new ClassInfo("IfcStructuralConnectionCondition", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcSlippageConnectionCondition", "IfcStructuralConnectionCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "SlippageX", "SlippageY", "SlippageZ" }),
			new ClassInfo("IfcStructuralLoad", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcStructuralLoadConfiguration", "IfcStructuralLoad", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "Values", "Locations" }),
			new ClassInfo("IfcStructuralLoadLinearForce", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "LinearForceX", "LinearForceY", "LinearForceZ", "LinearMomentX", "LinearMomentY", "LinearMomentZ" }),
			new ClassInfo("IfcStructuralLoadStatic", "IfcStructuralLoadOrResult", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcStructuralLoadOrResult", "IfcStructuralLoad", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcStructuralLoadPlanarForce", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "PlanarForceX", "PlanarForceY", "PlanarForceZ" }),
			new ClassInfo("IfcStructuralLoadSingleDisplacement", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "DisplacementX", "DisplacementY", "DisplacementZ", "RotationalDisplacementRX", "RotationalDisplacementRY", "RotationalDisplacementRZ" }),
			new ClassInfo("IfcStructuralLoadSingleDisplacementDistortion", "IfcStructuralLoadSingleDisplacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "DisplacementX", "DisplacementY", "DisplacementZ", "RotationalDisplacementRX", "RotationalDisplacementRY", "RotationalDisplacementRZ", "Distortion" }),
			new ClassInfo("IfcStructuralLoadSingleForce", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "ForceX", "ForceY", "ForceZ", "MomentX", "MomentY", "MomentZ" }),
			new ClassInfo("IfcStructuralLoadSingleForceWarping", "IfcStructuralLoadSingleForce", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "ForceX", "ForceY", "ForceZ", "MomentX", "MomentY", "MomentZ", "WarpingMoment" }),
			new ClassInfo("IfcStructuralLoadTemperature", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "DeltaTConstant", "DeltaTY", "DeltaTZ" }),
			new ClassInfo("IfcSurfaceReinforcementArea", "IfcStructuralLoadOrResult", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralLoadResource", new[] { "Name", "SurfaceReinforcement1", "SurfaceReinforcement2", "ShearReinforcement" }),
			new ClassInfo("IfcFooting", "IfcBuildingElement", ClassType.Concrete, new[] { "CAISSON_FOUNDATION", "FOOTING_BEAM", "PAD_FOOTING", "PILE_CAP", "STRIP_FOOTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBuildingElement", "IfcElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcElement", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcProduct", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcObject", "IfcObjectDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcObjectDefinition", "IfcRoot", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRoot", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcFootingType", "IfcBuildingElementType", ClassType.Concrete, new[] { "CAISSON_FOUNDATION", "FOOTING_BEAM", "PAD_FOOTING", "PILE_CAP", "STRIP_FOOTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBuildingElementType", "IfcElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcElementType", "IfcTypeProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcTypeProduct", "IfcTypeObject", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag" }),
			new ClassInfo("IfcTypeObject", "IfcObjectDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets" }),
			new ClassInfo("IfcPile", "IfcBuildingElement", ClassType.Concrete, new[] { "BORED", "DRIVEN", "JETGROUTING", "COHESION", "FRICTION", "SUPPORT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType", "ConstructionType" }),
			new ClassInfo("IfcPileType", "IfcBuildingElementType", ClassType.Concrete, new[] { "BORED", "DRIVEN", "JETGROUTING", "COHESION", "FRICTION", "SUPPORT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcReinforcementDefinitionProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "DefinitionType", "ReinforcementSectionDefinitions" }),
			new ClassInfo("IfcPreDefinedPropertySet", "IfcPropertySetDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcPropertySetDefinition", "IfcPropertyDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcPropertyDefinition", "IfcRoot", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcReinforcingBar", "IfcReinforcingElement", ClassType.Concrete, new[] { "ANCHORING", "EDGE", "LIGATURE", "MAIN", "PUNCHING", "RING", "SHEAR", "STUD", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "NominalDiameter", "CrossSectionArea", "BarLength", "PredefinedType", "BarSurface" }),
			new ClassInfo("IfcReinforcingElement", "IfcElementComponent", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade" }),
			new ClassInfo("IfcElementComponent", "IfcElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcReinforcingBarType", "IfcReinforcingElementType", ClassType.Concrete, new[] { "ANCHORING", "EDGE", "LIGATURE", "MAIN", "PUNCHING", "RING", "SHEAR", "STUD", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "NominalDiameter", "CrossSectionArea", "BarLength", "BarSurface", "BendingShapeCode", "BendingParameters" }),
			new ClassInfo("IfcReinforcingElementType", "IfcElementComponentType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcElementComponentType", "IfcElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcReinforcingMesh", "IfcReinforcingElement", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "MeshLength", "MeshWidth", "LongitudinalBarNominalDiameter", "TransverseBarNominalDiameter", "LongitudinalBarCrossSectionArea", "TransverseBarCrossSectionArea", "LongitudinalBarSpacing", "TransverseBarSpacing", "PredefinedType" }),
			new ClassInfo("IfcReinforcingMeshType", "IfcReinforcingElementType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "MeshLength", "MeshWidth", "LongitudinalBarNominalDiameter", "TransverseBarNominalDiameter", "LongitudinalBarCrossSectionArea", "TransverseBarCrossSectionArea", "LongitudinalBarSpacing", "TransverseBarSpacing", "BendingShapeCode", "BendingParameters" }),
			new ClassInfo("IfcSurfaceFeature", "IfcFeatureElement", ClassType.Concrete, new[] { "MARK", "TAG", "TREATMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFeatureElement", "IfcElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcTendon", "IfcReinforcingElement", ClassType.Concrete, new[] { "BAR", "COATED", "STRAND", "WIRE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "PredefinedType", "NominalDiameter", "CrossSectionArea", "TensionForce", "PreStress", "FrictionCoefficient", "AnchorageSlip", "MinCurvatureRadius" }),
			new ClassInfo("IfcTendonAnchor", "IfcReinforcingElement", ClassType.Concrete, new[] { "COUPLER", "FIXED_END", "TENSIONING_END", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "PredefinedType" }),
			new ClassInfo("IfcTendonAnchorType", "IfcReinforcingElementType", ClassType.Concrete, new[] { "COUPLER", "FIXED_END", "TENSIONING_END", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTendonType", "IfcReinforcingElementType", ClassType.Concrete, new[] { "BAR", "COATED", "STRAND", "WIRE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "NominalDiameter", "CrossSectionArea", "SheathDiameter" }),
			new ClassInfo("IfcVoidingFeature", "IfcFeatureElementSubtraction", ClassType.Concrete, new[] { "CUTOUT", "NOTCH", "HOLE", "MITER", "CHAMFER", "EDGE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFeatureElementSubtraction", "IfcFeatureElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcRelConnectsStructuralActivity", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedStructuralActivity" }),
			new ClassInfo("IfcRelConnects", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRelationship", "IfcRoot", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRelConnectsStructuralMember", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingStructuralMember", "RelatedStructuralConnection", "AppliedCondition", "AdditionalConditions", "SupportedLength", "ConditionCoordinateSystem" }),
			new ClassInfo("IfcRelConnectsWithEccentricity", "IfcRelConnectsStructuralMember", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingStructuralMember", "RelatedStructuralConnection", "AppliedCondition", "AdditionalConditions", "SupportedLength", "ConditionCoordinateSystem", "ConnectionConstraint" }),
			new ClassInfo("IfcStructuralAction", "IfcStructuralActivity", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad" }),
			new ClassInfo("IfcStructuralActivity", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal" }),
			new ClassInfo("IfcStructuralAnalysisModel", "IfcSystem", ClassType.Concrete, new[] { "IN_PLANE_LOADING_2D", "OUT_PLANE_LOADING_2D", "LOADING_3D", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "OrientationOf2DPlane", "LoadedBy", "HasResults", "SharedPlacement" }),
			new ClassInfo("IfcSystem", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcGroup", "IfcObject", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcStructuralConnection", "IfcStructuralItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition" }),
			new ClassInfo("IfcStructuralItem", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcStructuralCurveAction", "IfcStructuralAction", ClassType.Concrete, new[] { "CONST", "LINEAR", "POLYGONAL", "EQUIDISTANT", "SINUS", "PARABOLA", "DISCRETE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType" }),
			new ClassInfo("IfcStructuralCurveConnection", "IfcStructuralConnection", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition", "Axis" }),
			new ClassInfo("IfcStructuralCurveMember", "IfcStructuralMember", ClassType.Concrete, new[] { "RIGID_JOINED_MEMBER", "PIN_JOINED_MEMBER", "CABLE", "TENSION_MEMBER", "COMPRESSION_MEMBER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Axis" }),
			new ClassInfo("IfcStructuralMember", "IfcStructuralItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcStructuralCurveMemberVarying", "IfcStructuralCurveMember", ClassType.Concrete, new[] { "RIGID_JOINED_MEMBER", "PIN_JOINED_MEMBER", "CABLE", "TENSION_MEMBER", "COMPRESSION_MEMBER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Axis" }),
			new ClassInfo("IfcStructuralCurveReaction", "IfcStructuralReaction", ClassType.Concrete, new[] { "CONST", "LINEAR", "POLYGONAL", "EQUIDISTANT", "SINUS", "PARABOLA", "DISCRETE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "PredefinedType" }),
			new ClassInfo("IfcStructuralReaction", "IfcStructuralActivity", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal" }),
			new ClassInfo("IfcStructuralLinearAction", "IfcStructuralCurveAction", ClassType.Concrete, new[] { "CONST", "LINEAR", "POLYGONAL", "EQUIDISTANT", "SINUS", "PARABOLA", "DISCRETE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType" }),
			new ClassInfo("IfcStructuralLoadCase", "IfcStructuralLoadGroup", ClassType.Concrete, new[] { "LOAD_GROUP", "LOAD_CASE", "LOAD_COMBINATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "ActionType", "ActionSource", "Coefficient", "Purpose", "SelfWeightCoefficients" }),
			new ClassInfo("IfcStructuralLoadGroup", "IfcGroup", ClassType.Concrete, new[] { "LOAD_GROUP", "LOAD_CASE", "LOAD_COMBINATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "ActionType", "ActionSource", "Coefficient", "Purpose" }),
			new ClassInfo("IfcStructuralPlanarAction", "IfcStructuralSurfaceAction", ClassType.Concrete, new[] { "CONST", "BILINEAR", "DISCRETE", "ISOCONTOUR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType" }),
			new ClassInfo("IfcStructuralSurfaceAction", "IfcStructuralAction", ClassType.Concrete, new[] { "CONST", "BILINEAR", "DISCRETE", "ISOCONTOUR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType" }),
			new ClassInfo("IfcStructuralPointAction", "IfcStructuralAction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad" }),
			new ClassInfo("IfcStructuralPointConnection", "IfcStructuralConnection", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition", "ConditionCoordinateSystem" }),
			new ClassInfo("IfcStructuralPointReaction", "IfcStructuralReaction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal" }),
			new ClassInfo("IfcStructuralResultGroup", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheoryType", "ResultForLoadGroup", "IsLinear" }),
			new ClassInfo("IfcStructuralSurfaceConnection", "IfcStructuralConnection", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition" }),
			new ClassInfo("IfcStructuralSurfaceMember", "IfcStructuralMember", ClassType.Concrete, new[] { "BENDING_ELEMENT", "MEMBRANE_ELEMENT", "SHELL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Thickness" }),
			new ClassInfo("IfcStructuralSurfaceMemberVarying", "IfcStructuralSurfaceMember", ClassType.Concrete, new[] { "BENDING_ELEMENT", "MEMBRANE_ELEMENT", "SHELL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Thickness" }),
			new ClassInfo("IfcStructuralSurfaceReaction", "IfcStructuralReaction", ClassType.Concrete, new[] { "CONST", "BILINEAR", "DISCRETE", "ISOCONTOUR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "PredefinedType" }),
			new ClassInfo("IfcActionRequest", "IfcControl", ClassType.Concrete, new[] { "EMAIL", "FAX", "PHONE", "POST", "VERBAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "LongDescription" }),
			new ClassInfo("IfcControl", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification" }),
			new ClassInfo("IfcCostItem", "IfcControl", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "CostValues", "CostQuantities" }),
			new ClassInfo("IfcCostSchedule", "IfcControl", ClassType.Concrete, new[] { "BUDGET", "COSTPLAN", "ESTIMATE", "TENDER", "PRICEDBILLOFQUANTITIES", "UNPRICEDBILLOFQUANTITIES", "SCHEDULEOFRATES", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "SubmittedOn", "UpdateDate" }),
			new ClassInfo("IfcPermit", "IfcControl", ClassType.Concrete, new[] { "ACCESS", "BUILDING", "WORK", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "LongDescription" }),
			new ClassInfo("IfcProjectOrder", "IfcControl", ClassType.Concrete, new[] { "CHANGEORDER", "MAINTENANCEWORKORDER", "MOVEORDER", "PURCHASEORDER", "WORKORDER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "LongDescription" }),
			new ClassInfo("IfcAsset", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "OriginalValue", "CurrentValue", "TotalReplacementCost", "Owner", "User", "ResponsiblePerson", "IncorporationDate", "DepreciatedValue" }),
			new ClassInfo("IfcFurniture", "IfcFurnishingElement", ClassType.Concrete, new[] { "CHAIR", "TABLE", "DESK", "BED", "FILECABINET", "SHELF", "SOFA", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFurnishingElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFurnitureType", "IfcFurnishingElementType", ClassType.Concrete, new[] { "CHAIR", "TABLE", "DESK", "BED", "FILECABINET", "SHELF", "SOFA", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "AssemblyPlace", "PredefinedType" }),
			new ClassInfo("IfcFurnishingElementType", "IfcElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcInventory", "IfcGroup", ClassType.Concrete, new[] { "ASSETINVENTORY", "SPACEINVENTORY", "FURNITUREINVENTORY", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "Jurisdiction", "ResponsiblePersons", "LastUpdateDate", "CurrentValue", "OriginalValue" }),
			new ClassInfo("IfcOccupant", "IfcActor", ClassType.Concrete, new[] { "ASSIGNEE", "ASSIGNOR", "LESSEE", "LESSOR", "LETTINGAGENT", "OWNER", "TENANT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheActor", "PredefinedType" }),
			new ClassInfo("IfcActor", "IfcObject", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheActor" }),
			new ClassInfo("IfcSystemFurnitureElement", "IfcFurnishingElement", ClassType.Concrete, new[] { "PANEL", "WORKSURFACE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSystemFurnitureElementType", "IfcFurnishingElementType", ClassType.Concrete, new[] { "PANEL", "WORKSURFACE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBuildingElementPart", "IfcElementComponent", ClassType.Concrete, new[] { "INSULATION", "PRECASTPANEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBuildingElementPartType", "IfcElementComponentType", ClassType.Concrete, new[] { "INSULATION", "PRECASTPANEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDiscreteAccessory", "IfcElementComponent", ClassType.Concrete, new[] { "ANCHORPLATE", "BRACKET", "SHOE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDiscreteAccessoryType", "IfcElementComponentType", ClassType.Concrete, new[] { "ANCHORPLATE", "BRACKET", "SHOE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFastener", "IfcElementComponent", ClassType.Concrete, new[] { "GLUE", "MORTAR", "WELD", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFastenerType", "IfcElementComponentType", ClassType.Concrete, new[] { "GLUE", "MORTAR", "WELD", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcMechanicalFastener", "IfcElementComponent", ClassType.Concrete, new[] { "ANCHORBOLT", "BOLT", "DOWEL", "NAIL", "NAILPLATE", "RIVET", "SCREW", "SHEARCONNECTOR", "STAPLE", "STUDSHEARCONNECTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "NominalDiameter", "NominalLength", "PredefinedType" }),
			new ClassInfo("IfcMechanicalFastenerType", "IfcElementComponentType", ClassType.Concrete, new[] { "ANCHORBOLT", "BOLT", "DOWEL", "NAIL", "NAILPLATE", "RIVET", "SCREW", "SHEARCONNECTOR", "STAPLE", "STUDSHEARCONNECTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "NominalDiameter", "NominalLength" }),
			new ClassInfo("IfcDistributionChamberElement", "IfcDistributionFlowElement", ClassType.Concrete, new[] { "FORMEDDUCT", "INSPECTIONCHAMBER", "INSPECTIONPIT", "MANHOLE", "METERCHAMBER", "SUMP", "TRENCH", "VALVECHAMBER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDistributionFlowElement", "IfcDistributionElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcDistributionElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcDistributionChamberElementType", "IfcDistributionFlowElementType", ClassType.Concrete, new[] { "FORMEDDUCT", "INSPECTIONCHAMBER", "INSPECTIONPIT", "MANHOLE", "METERCHAMBER", "SUMP", "TRENCH", "VALVECHAMBER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDistributionFlowElementType", "IfcDistributionElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcDistributionElementType", "IfcElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcDistributionCircuit", "IfcDistributionSystem", ClassType.Concrete, new[] { "AIRCONDITIONING", "AUDIOVISUAL", "CHEMICAL", "CHILLEDWATER", "COMMUNICATION", "COMPRESSEDAIR", "CONDENSERWATER", "CONTROL", "CONVEYING", "DATA", "DISPOSAL", "DOMESTICCOLDWATER", "DOMESTICHOTWATER", "DRAINAGE", "EARTHING", "ELECTRICAL", "ELECTROACOUSTIC", "EXHAUST", "FIREPROTECTION", "FUEL", "GAS", "HAZARDOUS", "HEATING", "LIGHTING", "LIGHTNINGPROTECTION", "MUNICIPALSOLIDWASTE", "OIL", "OPERATIONAL", "POWERGENERATION", "RAINWATER", "REFRIGERATION", "SECURITY", "SEWAGE", "SIGNAL", "STORMWATER", "TELEPHONE", "TV", "VACUUM", "VENT", "VENTILATION", "WASTEWATER", "WATERSUPPLY", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "PredefinedType" }),
			new ClassInfo("IfcDistributionSystem", "IfcSystem", ClassType.Concrete, new[] { "AIRCONDITIONING", "AUDIOVISUAL", "CHEMICAL", "CHILLEDWATER", "COMMUNICATION", "COMPRESSEDAIR", "CONDENSERWATER", "CONTROL", "CONVEYING", "DATA", "DISPOSAL", "DOMESTICCOLDWATER", "DOMESTICHOTWATER", "DRAINAGE", "EARTHING", "ELECTRICAL", "ELECTROACOUSTIC", "EXHAUST", "FIREPROTECTION", "FUEL", "GAS", "HAZARDOUS", "HEATING", "LIGHTING", "LIGHTNINGPROTECTION", "MUNICIPALSOLIDWASTE", "OIL", "OPERATIONAL", "POWERGENERATION", "RAINWATER", "REFRIGERATION", "SECURITY", "SEWAGE", "SIGNAL", "STORMWATER", "TELEPHONE", "TV", "VACUUM", "VENT", "VENTILATION", "WASTEWATER", "WATERSUPPLY", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "PredefinedType" }),
			new ClassInfo("IfcDistributionControlElement", "IfcDistributionElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcDistributionControlElementType", "IfcDistributionElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcDistributionPort", "IfcPort", ClassType.Concrete, new[] { "CABLE", "CABLECARRIER", "DUCT", "PIPE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "FlowDirection", "PredefinedType", "SystemType" }),
			new ClassInfo("IfcPort", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcEnergyConversionDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcEnergyConversionDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowController", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowControllerType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowFitting", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowFittingType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowMovingDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowMovingDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowSegment", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowSegmentType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowStorageDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowStorageDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowTerminal", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowTerminalType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowTreatmentDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowTreatmentDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcRelFlowControlElements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedControlElements", "RelatingFlowElement" }),
			new ClassInfo("IfcBeam", "IfcBuildingElement", ClassType.Concrete, new[] { "BEAM", "JOIST", "HOLLOWCORE", "LINTEL", "SPANDREL", "T_BEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBeamStandardCase", "IfcBeam", ClassType.Concrete, new[] { "BEAM", "JOIST", "HOLLOWCORE", "LINTEL", "SPANDREL", "T_BEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBeamType", "IfcBuildingElementType", ClassType.Concrete, new[] { "BEAM", "JOIST", "HOLLOWCORE", "LINTEL", "SPANDREL", "T_BEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBuildingElementProxy", "IfcBuildingElement", ClassType.Concrete, new[] { "COMPLEX", "ELEMENT", "PARTIAL", "PROVISIONFORVOID", "PROVISIONFORSPACE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBuildingElementProxyType", "IfcBuildingElementType", ClassType.Concrete, new[] { "COMPLEX", "ELEMENT", "PARTIAL", "PROVISIONFORVOID", "PROVISIONFORSPACE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBuildingSystem", "IfcSystem", ClassType.Concrete, new[] { "FENESTRATION", "FOUNDATION", "LOADBEARING", "OUTERSHELL", "SHADING", "TRANSPORT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "LongName" }),
			new ClassInfo("IfcChimney", "IfcBuildingElement", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcChimneyType", "IfcBuildingElementType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcColumn", "IfcBuildingElement", ClassType.Concrete, new[] { "COLUMN", "PILASTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcColumnStandardCase", "IfcColumn", ClassType.Concrete, new[] { "COLUMN", "PILASTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcColumnType", "IfcBuildingElementType", ClassType.Concrete, new[] { "COLUMN", "PILASTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCovering", "IfcBuildingElement", ClassType.Concrete, new[] { "CEILING", "FLOORING", "CLADDING", "ROOFING", "MOLDING", "SKIRTINGBOARD", "INSULATION", "MEMBRANE", "SLEEVING", "WRAPPING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCoveringType", "IfcBuildingElementType", ClassType.Concrete, new[] { "CEILING", "FLOORING", "CLADDING", "ROOFING", "MOLDING", "SKIRTINGBOARD", "INSULATION", "MEMBRANE", "SLEEVING", "WRAPPING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCurtainWall", "IfcBuildingElement", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCurtainWallType", "IfcBuildingElementType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDoor", "IfcBuildingElement", ClassType.Concrete, new[] { "DOOR", "GATE", "TRAPDOOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth", "PredefinedType", "OperationType", "UserDefinedOperationType" }),
			new ClassInfo("IfcDoorStandardCase", "IfcDoor", ClassType.Concrete, new[] { "DOOR", "GATE", "TRAPDOOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth", "PredefinedType", "OperationType", "UserDefinedOperationType" }),
			new ClassInfo("IfcDoorType", "IfcBuildingElementType", ClassType.Concrete, new[] { "DOOR", "GATE", "TRAPDOOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "OperationType", "ParameterTakesPrecedence", "UserDefinedOperationType" }),
			new ClassInfo("IfcMember", "IfcBuildingElement", ClassType.Concrete, new[] { "BRACE", "CHORD", "COLLAR", "MEMBER", "MULLION", "PLATE", "POST", "PURLIN", "RAFTER", "STRINGER", "STRUT", "STUD", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcMemberStandardCase", "IfcMember", ClassType.Concrete, new[] { "BRACE", "CHORD", "COLLAR", "MEMBER", "MULLION", "PLATE", "POST", "PURLIN", "RAFTER", "STRINGER", "STRUT", "STUD", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcMemberType", "IfcBuildingElementType", ClassType.Concrete, new[] { "BRACE", "CHORD", "COLLAR", "MEMBER", "MULLION", "PLATE", "POST", "PURLIN", "RAFTER", "STRINGER", "STRUT", "STUD", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPlate", "IfcBuildingElement", ClassType.Concrete, new[] { "CURTAIN_PANEL", "SHEET", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPlateStandardCase", "IfcPlate", ClassType.Concrete, new[] { "CURTAIN_PANEL", "SHEET", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPlateType", "IfcBuildingElementType", ClassType.Concrete, new[] { "CURTAIN_PANEL", "SHEET", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRailing", "IfcBuildingElement", ClassType.Concrete, new[] { "HANDRAIL", "GUARDRAIL", "BALUSTRADE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcRailingType", "IfcBuildingElementType", ClassType.Concrete, new[] { "HANDRAIL", "GUARDRAIL", "BALUSTRADE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRamp", "IfcBuildingElement", ClassType.Concrete, new[] { "STRAIGHT_RUN_RAMP", "TWO_STRAIGHT_RUN_RAMP", "QUARTER_TURN_RAMP", "TWO_QUARTER_TURN_RAMP", "HALF_TURN_RAMP", "SPIRAL_RAMP", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcRampFlight", "IfcBuildingElement", ClassType.Concrete, new[] { "STRAIGHT", "SPIRAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcRampFlightType", "IfcBuildingElementType", ClassType.Concrete, new[] { "STRAIGHT", "SPIRAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRampType", "IfcBuildingElementType", ClassType.Concrete, new[] { "STRAIGHT_RUN_RAMP", "TWO_STRAIGHT_RUN_RAMP", "QUARTER_TURN_RAMP", "TWO_QUARTER_TURN_RAMP", "HALF_TURN_RAMP", "SPIRAL_RAMP", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRelConnectsPathElements", "IfcRelConnectsElements", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement", "RelatingPriorities", "RelatedPriorities", "RelatedConnectionType", "RelatingConnectionType" }),
			new ClassInfo("IfcRelConnectsElements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement" }),
			new ClassInfo("IfcRelCoversBldgElements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingBuildingElement", "RelatedCoverings" }),
			new ClassInfo("IfcRelCoversSpaces", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedCoverings" }),
			new ClassInfo("IfcRoof", "IfcBuildingElement", ClassType.Concrete, new[] { "FLAT_ROOF", "SHED_ROOF", "GABLE_ROOF", "HIP_ROOF", "HIPPED_GABLE_ROOF", "GAMBREL_ROOF", "MANSARD_ROOF", "BARREL_ROOF", "RAINBOW_ROOF", "BUTTERFLY_ROOF", "PAVILION_ROOF", "DOME_ROOF", "FREEFORM", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcRoofType", "IfcBuildingElementType", ClassType.Concrete, new[] { "FLAT_ROOF", "SHED_ROOF", "GABLE_ROOF", "HIP_ROOF", "HIPPED_GABLE_ROOF", "GAMBREL_ROOF", "MANSARD_ROOF", "BARREL_ROOF", "RAINBOW_ROOF", "BUTTERFLY_ROOF", "PAVILION_ROOF", "DOME_ROOF", "FREEFORM", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcShadingDevice", "IfcBuildingElement", ClassType.Concrete, new[] { "JALOUSIE", "SHUTTER", "AWNING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcShadingDeviceType", "IfcBuildingElementType", ClassType.Concrete, new[] { "JALOUSIE", "SHUTTER", "AWNING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSlab", "IfcBuildingElement", ClassType.Concrete, new[] { "FLOOR", "ROOF", "LANDING", "BASESLAB", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSlabElementedCase", "IfcSlab", ClassType.Concrete, new[] { "FLOOR", "ROOF", "LANDING", "BASESLAB", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSlabStandardCase", "IfcSlab", ClassType.Concrete, new[] { "FLOOR", "ROOF", "LANDING", "BASESLAB", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSlabType", "IfcBuildingElementType", ClassType.Concrete, new[] { "FLOOR", "ROOF", "LANDING", "BASESLAB", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcStair", "IfcBuildingElement", ClassType.Concrete, new[] { "STRAIGHT_RUN_STAIR", "TWO_STRAIGHT_RUN_STAIR", "QUARTER_WINDING_STAIR", "QUARTER_TURN_STAIR", "HALF_WINDING_STAIR", "HALF_TURN_STAIR", "TWO_QUARTER_WINDING_STAIR", "TWO_QUARTER_TURN_STAIR", "THREE_QUARTER_WINDING_STAIR", "THREE_QUARTER_TURN_STAIR", "SPIRAL_STAIR", "DOUBLE_RETURN_STAIR", "CURVED_RUN_STAIR", "TWO_CURVED_RUN_STAIR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcStairFlight", "IfcBuildingElement", ClassType.Concrete, new[] { "STRAIGHT", "WINDER", "SPIRAL", "CURVED", "FREEFORM", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "NumberOfRisers", "NumberOfTreads", "RiserHeight", "TreadLength", "PredefinedType" }),
			new ClassInfo("IfcStairFlightType", "IfcBuildingElementType", ClassType.Concrete, new[] { "STRAIGHT", "WINDER", "SPIRAL", "CURVED", "FREEFORM", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcStairType", "IfcBuildingElementType", ClassType.Concrete, new[] { "STRAIGHT_RUN_STAIR", "TWO_STRAIGHT_RUN_STAIR", "QUARTER_WINDING_STAIR", "QUARTER_TURN_STAIR", "HALF_WINDING_STAIR", "HALF_TURN_STAIR", "TWO_QUARTER_WINDING_STAIR", "TWO_QUARTER_TURN_STAIR", "THREE_QUARTER_WINDING_STAIR", "THREE_QUARTER_TURN_STAIR", "SPIRAL_STAIR", "DOUBLE_RETURN_STAIR", "CURVED_RUN_STAIR", "TWO_CURVED_RUN_STAIR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcWall", "IfcBuildingElement", ClassType.Concrete, new[] { "MOVABLE", "PARAPET", "PARTITIONING", "PLUMBINGWALL", "SHEAR", "SOLIDWALL", "STANDARD", "POLYGONAL", "ELEMENTEDWALL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcWallElementedCase", "IfcWall", ClassType.Concrete, new[] { "MOVABLE", "PARAPET", "PARTITIONING", "PLUMBINGWALL", "SHEAR", "SOLIDWALL", "STANDARD", "POLYGONAL", "ELEMENTEDWALL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcWallStandardCase", "IfcWall", ClassType.Concrete, new[] { "MOVABLE", "PARAPET", "PARTITIONING", "PLUMBINGWALL", "SHEAR", "SOLIDWALL", "STANDARD", "POLYGONAL", "ELEMENTEDWALL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcWallType", "IfcBuildingElementType", ClassType.Concrete, new[] { "MOVABLE", "PARAPET", "PARTITIONING", "PLUMBINGWALL", "SHEAR", "SOLIDWALL", "STANDARD", "POLYGONAL", "ELEMENTEDWALL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcWindow", "IfcBuildingElement", ClassType.Concrete, new[] { "WINDOW", "SKYLIGHT", "LIGHTDOME", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth", "PredefinedType", "PartitioningType", "UserDefinedPartitioningType" }),
			new ClassInfo("IfcWindowStandardCase", "IfcWindow", ClassType.Concrete, new[] { "WINDOW", "SKYLIGHT", "LIGHTDOME", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth", "PredefinedType", "PartitioningType", "UserDefinedPartitioningType" }),
			new ClassInfo("IfcWindowType", "IfcBuildingElementType", ClassType.Concrete, new[] { "WINDOW", "SKYLIGHT", "LIGHTDOME", "USERDEFINED", "NOTDEFINED" }, "Ifc4.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "PartitioningType", "ParameterTakesPrecedence", "UserDefinedPartitioningType" }),
			new ClassInfo("IfcCoordinateOperation", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "SourceCRS", "TargetCRS" }),
			new ClassInfo("IfcCoordinateReferenceSystem", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "Name", "Description", "GeodeticDatum", "VerticalDatum" }),
			new ClassInfo("IfcGeometricRepresentationContext", "IfcRepresentationContext", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "ContextIdentifier", "ContextType", "CoordinateSpaceDimension", "Precision", "WorldCoordinateSystem", "TrueNorth" }),
			new ClassInfo("IfcRepresentationContext", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "ContextIdentifier", "ContextType" }),
			new ClassInfo("IfcGeometricRepresentationSubContext", "IfcGeometricRepresentationContext", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "ContextIdentifier", "ContextType", "CoordinateSpaceDimension", "Precision", "WorldCoordinateSystem", "TrueNorth", "ParentContext", "TargetScale", "TargetView", "UserDefinedTargetView" }),
			new ClassInfo("IfcMapConversion", "IfcCoordinateOperation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "SourceCRS", "TargetCRS", "Eastings", "Northings", "OrthogonalHeight", "XAxisAbscissa", "XAxisOrdinate", "Scale" }),
			new ClassInfo("IfcMaterialDefinitionRepresentation", "IfcProductRepresentation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "Name", "Description", "Representations", "RepresentedMaterial" }),
			new ClassInfo("IfcProductRepresentation", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "Name", "Description", "Representations" }),
			new ClassInfo("IfcProductDefinitionShape", "IfcProductRepresentation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "Name", "Description", "Representations" }),
			new ClassInfo("IfcProjectedCRS", "IfcCoordinateReferenceSystem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "Name", "Description", "GeodeticDatum", "VerticalDatum", "MapProjection", "MapZone", "MapUnit" }),
			new ClassInfo("IfcRepresentation", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcShapeAspect", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "ShapeRepresentations", "Name", "Description", "ProductDefinitional", "PartOfProductDefinitionShape" }),
			new ClassInfo("IfcShapeModel", "IfcRepresentation", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcShapeRepresentation", "IfcShapeModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcStyledRepresentation", "IfcStyleModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcStyleModel", "IfcRepresentation", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcTopologyRepresentation", "IfcShapeModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcPhysicalComplexQuantity", "IfcPhysicalQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.QuantityResource", new[] { "Name", "Description", "HasQuantities", "Discrimination", "Quality", "Usage" }),
			new ClassInfo("IfcPhysicalQuantity", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.QuantityResource", new[] { "Name", "Description" }),
			new ClassInfo("IfcPhysicalSimpleQuantity", "IfcPhysicalQuantity", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.QuantityResource", new[] { "Name", "Description", "Unit" }),
			new ClassInfo("IfcQuantityArea", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.QuantityResource", new[] { "Name", "Description", "Unit", "AreaValue", "Formula" }),
			new ClassInfo("IfcQuantityCount", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.QuantityResource", new[] { "Name", "Description", "Unit", "CountValue", "Formula" }),
			new ClassInfo("IfcQuantityLength", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.QuantityResource", new[] { "Name", "Description", "Unit", "LengthValue", "Formula" }),
			new ClassInfo("IfcQuantityTime", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.QuantityResource", new[] { "Name", "Description", "Unit", "TimeValue", "Formula" }),
			new ClassInfo("IfcQuantityVolume", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.QuantityResource", new[] { "Name", "Description", "Unit", "VolumeValue", "Formula" }),
			new ClassInfo("IfcQuantityWeight", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.QuantityResource", new[] { "Name", "Description", "Unit", "WeightValue", "Formula" }),
			new ClassInfo("IfcComplexProperty", "IfcProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "Description", "UsageName", "HasProperties" }),
			new ClassInfo("IfcProperty", "IfcPropertyAbstraction", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "Description" }),
			new ClassInfo("IfcPropertyAbstraction", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "" }),
			new ClassInfo("IfcExtendedProperties", "IfcPropertyAbstraction", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "Description", "Properties" }),
			new ClassInfo("IfcPreDefinedProperties", "IfcPropertyAbstraction", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "" }),
			new ClassInfo("IfcPropertyBoundedValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "Description", "UpperBoundValue", "LowerBoundValue", "Unit", "SetPointValue" }),
			new ClassInfo("IfcSimpleProperty", "IfcProperty", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "Description" }),
			new ClassInfo("IfcPropertyDependencyRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "Description", "DependingProperty", "DependantProperty", "Expression" }),
			new ClassInfo("IfcResourceLevelRelationship", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "Name", "Description" }),
			new ClassInfo("IfcPropertyEnumeratedValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "Description", "EnumerationValues", "EnumerationReference" }),
			new ClassInfo("IfcPropertyEnumeration", "IfcPropertyAbstraction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "EnumerationValues", "Unit" }),
			new ClassInfo("IfcPropertyListValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "Description", "ListValues", "Unit" }),
			new ClassInfo("IfcPropertyReferenceValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "Description", "UsageName", "PropertyReference" }),
			new ClassInfo("IfcPropertySingleValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "Description", "NominalValue", "Unit" }),
			new ClassInfo("IfcPropertyTableValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PropertyResource", new[] { "Name", "Description", "DefiningValues", "DefinedValues", "Expression", "DefiningUnit", "DefinedUnit", "CurveInterpolation" }),
			new ClassInfo("IfcArbitraryClosedProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "OuterCurve" }),
			new ClassInfo("IfcProfileDef", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName" }),
			new ClassInfo("IfcArbitraryOpenProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Curve" }),
			new ClassInfo("IfcArbitraryProfileDefWithVoids", "IfcArbitraryClosedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "OuterCurve", "InnerCurves" }),
			new ClassInfo("IfcAsymmetricIShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "BottomFlangeWidth", "OverallDepth", "WebThickness", "BottomFlangeThickness", "BottomFlangeFilletRadius", "TopFlangeWidth", "TopFlangeThickness", "TopFlangeFilletRadius", "BottomFlangeEdgeRadius", "BottomFlangeSlope", "TopFlangeEdgeRadius", "TopFlangeSlope" }),
			new ClassInfo("IfcParameterizedProfileDef", "IfcProfileDef", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position" }),
			new ClassInfo("IfcCenterLineProfileDef", "IfcArbitraryOpenProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Curve", "Thickness" }),
			new ClassInfo("IfcCircleHollowProfileDef", "IfcCircleProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Radius", "WallThickness" }),
			new ClassInfo("IfcCircleProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Radius" }),
			new ClassInfo("IfcCompositeProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Profiles", "Label" }),
			new ClassInfo("IfcCShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "Width", "WallThickness", "Girth", "InternalFilletRadius" }),
			new ClassInfo("IfcDerivedProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "ParentProfile", "Operator", "Label" }),
			new ClassInfo("IfcEllipseProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "SemiAxis1", "SemiAxis2" }),
			new ClassInfo("IfcIShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "OverallWidth", "OverallDepth", "WebThickness", "FlangeThickness", "FilletRadius", "FlangeEdgeRadius", "FlangeSlope" }),
			new ClassInfo("IfcLShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "Width", "Thickness", "FilletRadius", "EdgeRadius", "LegSlope" }),
			new ClassInfo("IfcMirroredProfileDef", "IfcDerivedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "ParentProfile", "Operator", "Label" }),
			new ClassInfo("IfcProfileProperties", "IfcExtendedProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "Name", "Description", "Properties", "ProfileDefinition" }),
			new ClassInfo("IfcRectangleHollowProfileDef", "IfcRectangleProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "XDim", "YDim", "WallThickness", "InnerFilletRadius", "OuterFilletRadius" }),
			new ClassInfo("IfcRectangleProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "XDim", "YDim" }),
			new ClassInfo("IfcReinforcementBarProperties", "IfcPreDefinedProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "TotalCrossSectionArea", "SteelGrade", "BarSurface", "EffectiveDepth", "NominalBarDiameter", "BarCount" }),
			new ClassInfo("IfcRoundedRectangleProfileDef", "IfcRectangleProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "XDim", "YDim", "RoundingRadius" }),
			new ClassInfo("IfcSectionProperties", "IfcPreDefinedProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "SectionType", "StartProfile", "EndProfile" }),
			new ClassInfo("IfcSectionReinforcementProperties", "IfcPreDefinedProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "LongitudinalStartPosition", "LongitudinalEndPosition", "TransversePosition", "ReinforcementRole", "SectionDefinition", "CrossSectionReinforcementDefinitions" }),
			new ClassInfo("IfcTrapeziumProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "BottomXDim", "TopXDim", "YDim", "TopXOffset" }),
			new ClassInfo("IfcTShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "FlangeEdgeRadius", "WebEdgeRadius", "WebSlope", "FlangeSlope" }),
			new ClassInfo("IfcUShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "EdgeRadius", "FlangeSlope" }),
			new ClassInfo("IfcZShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "EdgeRadius" }),
			new ClassInfo("IfcAlignment", "IfcLinearPositioningElement", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Axis", "PredefinedType" }),
			new ClassInfo("IfcLinearPositioningElement", "IfcPositioningElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Axis" }),
			new ClassInfo("IfcPositioningElement", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcAnnotation", "IfcProduct", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcBuilding", "IfcSpatialStructureElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "ElevationOfRefHeight", "ElevationOfTerrain", "BuildingAddress" }),
			new ClassInfo("IfcSpatialStructureElement", "IfcSpatialElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType" }),
			new ClassInfo("IfcSpatialElement", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName" }),
			new ClassInfo("IfcBuildingStorey", "IfcSpatialStructureElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "Elevation" }),
			new ClassInfo("IfcCivilElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcCivilElementType", "IfcElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcElementAssembly", "IfcElement", ClassType.Concrete, new[] { "ACCESSORY_ASSEMBLY", "ARCH", "BEAM_GRID", "BRACED_FRAME", "GIRDER", "REINFORCEMENT_UNIT", "RIGID_FRAME", "SLAB_FIELD", "TRUSS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "AssemblyPlace", "PredefinedType" }),
			new ClassInfo("IfcElementAssemblyType", "IfcElementType", ClassType.Concrete, new[] { "ACCESSORY_ASSEMBLY", "ARCH", "BEAM_GRID", "BRACED_FRAME", "GIRDER", "REINFORCEMENT_UNIT", "RIGID_FRAME", "SLAB_FIELD", "TRUSS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElementQuantity", "IfcQuantitySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "MethodOfMeasurement", "Quantities" }),
			new ClassInfo("IfcQuantitySet", "IfcPropertySetDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcExternalSpatialElement", "IfcExternalSpatialStructureElement", ClassType.Concrete, new[] { "EXTERNAL", "EXTERNAL_EARTH", "EXTERNAL_WATER", "EXTERNAL_FIRE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "PredefinedType" }),
			new ClassInfo("IfcExternalSpatialStructureElement", "IfcSpatialElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName" }),
			new ClassInfo("IfcFeatureElementAddition", "IfcFeatureElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcGeographicElement", "IfcElement", ClassType.Concrete, new[] { "TERRAIN", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcGeographicElementType", "IfcElementType", ClassType.Concrete, new[] { "TERRAIN", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcGrid", "IfcProduct", ClassType.Concrete, new[] { "RECTANGULAR", "RADIAL", "TRIANGULAR", "IRREGULAR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "UAxes", "VAxes", "WAxes", "PredefinedType" }),
			new ClassInfo("IfcOpeningElement", "IfcFeatureElementSubtraction", ClassType.Concrete, new[] { "OPENING", "RECESS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcOpeningStandardCase", "IfcOpeningElement", ClassType.Concrete, new[] { "OPENING", "RECESS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcProjectionElement", "IfcFeatureElementAddition", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcReferent", "IfcPositioningElement", ClassType.Concrete, new[] { "KILOPOINT", "MILEPOINT", "STATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "RestartDistance" }),
			new ClassInfo("IfcRelAssociatesMaterial", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingMaterial" }),
			new ClassInfo("IfcRelAssociates", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects" }),
			new ClassInfo("IfcRelConnectsPorts", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingPort", "RelatedPort", "RealizingElement" }),
			new ClassInfo("IfcRelConnectsPortToElement", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingPort", "RelatedElement" }),
			new ClassInfo("IfcRelConnectsWithRealizingElements", "IfcRelConnectsElements", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement", "RealizingElements", "ConnectionType" }),
			new ClassInfo("IfcRelContainedInSpatialStructure", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedElements", "RelatingStructure" }),
			new ClassInfo("IfcRelFillsElement", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingOpeningElement", "RelatedBuildingElement" }),
			new ClassInfo("IfcRelInterferesElements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedElement", "InterferenceGeometry", "InterferenceType", "ImpliedOrder" }),
			new ClassInfo("IfcRelProjectsElement", "IfcRelDecomposes", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedFeatureElement" }),
			new ClassInfo("IfcRelDecomposes", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRelReferencedInSpatialStructure", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedElements", "RelatingStructure" }),
			new ClassInfo("IfcRelServicesBuildings", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSystem", "RelatedBuildings" }),
			new ClassInfo("IfcRelSpaceBoundary", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedBuildingElement", "ConnectionGeometry", "PhysicalOrVirtualBoundary", "InternalOrExternalBoundary" }),
			new ClassInfo("IfcRelSpaceBoundary1stLevel", "IfcRelSpaceBoundary", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedBuildingElement", "ConnectionGeometry", "PhysicalOrVirtualBoundary", "InternalOrExternalBoundary", "ParentBoundary" }),
			new ClassInfo("IfcRelSpaceBoundary2ndLevel", "IfcRelSpaceBoundary1stLevel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedBuildingElement", "ConnectionGeometry", "PhysicalOrVirtualBoundary", "InternalOrExternalBoundary", "ParentBoundary", "CorrespondingBoundary" }),
			new ClassInfo("IfcRelVoidsElement", "IfcRelDecomposes", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingBuildingElement", "RelatedOpeningElement" }),
			new ClassInfo("IfcSite", "IfcSpatialStructureElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "RefLatitude", "RefLongitude", "RefElevation", "LandTitleNumber", "SiteAddress" }),
			new ClassInfo("IfcSpace", "IfcSpatialStructureElement", ClassType.Concrete, new[] { "SPACE", "PARKING", "GFA", "INTERNAL", "EXTERNAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "PredefinedType", "ElevationWithFlooring" }),
			new ClassInfo("IfcSpaceType", "IfcSpatialStructureElementType", ClassType.Concrete, new[] { "SPACE", "PARKING", "GFA", "INTERNAL", "EXTERNAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "LongName" }),
			new ClassInfo("IfcSpatialStructureElementType", "IfcSpatialElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcSpatialElementType", "IfcTypeProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcSpatialZone", "IfcSpatialElement", ClassType.Concrete, new[] { "CONSTRUCTION", "FIRESAFETY", "LIGHTING", "OCCUPANCY", "SECURITY", "THERMAL", "TRANSPORT", "VENTILATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "PredefinedType" }),
			new ClassInfo("IfcSpatialZoneType", "IfcSpatialElementType", ClassType.Concrete, new[] { "CONSTRUCTION", "FIRESAFETY", "LIGHTING", "OCCUPANCY", "SECURITY", "THERMAL", "TRANSPORT", "VENTILATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "LongName" }),
			new ClassInfo("IfcTransportElement", "IfcElement", ClassType.Concrete, new[] { "ELEVATOR", "ESCALATOR", "MOVINGWALKWAY", "CRANEWAY", "LIFTINGGEAR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcTransportElementType", "IfcElementType", ClassType.Concrete, new[] { "ELEVATOR", "ESCALATOR", "MOVINGWALKWAY", "CRANEWAY", "LIFTINGGEAR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcVirtualElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcZone", "IfcSystem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName" }),
			new ClassInfo("IfcEvent", "IfcProcess", ClassType.Concrete, new[] { "STARTEVENT", "ENDEVENT", "INTERMEDIATEEVENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "PredefinedType", "EventTriggerType", "UserDefinedEventTriggerType", "EventOccurenceTime" }),
			new ClassInfo("IfcProcess", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription" }),
			new ClassInfo("IfcEventType", "IfcTypeProcess", ClassType.Concrete, new[] { "STARTEVENT", "ENDEVENT", "INTERMEDIATEEVENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType", "PredefinedType", "EventTriggerType", "UserDefinedEventTriggerType" }),
			new ClassInfo("IfcTypeProcess", "IfcTypeObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType" }),
			new ClassInfo("IfcProcedure", "IfcProcess", ClassType.Concrete, new[] { "ADVICE_CAUTION", "ADVICE_NOTE", "ADVICE_WARNING", "CALIBRATION", "DIAGNOSTIC", "SHUTDOWN", "STARTUP", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "PredefinedType" }),
			new ClassInfo("IfcProcedureType", "IfcTypeProcess", ClassType.Concrete, new[] { "ADVICE_CAUTION", "ADVICE_NOTE", "ADVICE_WARNING", "CALIBRATION", "DIAGNOSTIC", "SHUTDOWN", "STARTUP", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType", "PredefinedType" }),
			new ClassInfo("IfcRelSequence", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingProcess", "RelatedProcess", "TimeLag", "SequenceType", "UserDefinedSequenceType" }),
			new ClassInfo("IfcTask", "IfcProcess", ClassType.Concrete, new[] { "ATTENDANCE", "CONSTRUCTION", "DEMOLITION", "DISMANTLE", "DISPOSAL", "INSTALLATION", "LOGISTIC", "MAINTENANCE", "MOVE", "OPERATION", "REMOVAL", "RENOVATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Status", "WorkMethod", "IsMilestone", "Priority", "TaskTime", "PredefinedType" }),
			new ClassInfo("IfcTaskType", "IfcTypeProcess", ClassType.Concrete, new[] { "ATTENDANCE", "CONSTRUCTION", "DEMOLITION", "DISMANTLE", "DISPOSAL", "INSTALLATION", "LOGISTIC", "MAINTENANCE", "MOVE", "OPERATION", "REMOVAL", "RENOVATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType", "PredefinedType", "WorkMethod" }),
			new ClassInfo("IfcWorkCalendar", "IfcControl", ClassType.Concrete, new[] { "FIRSTSHIFT", "SECONDSHIFT", "THIRDSHIFT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "WorkingTimes", "ExceptionTimes", "PredefinedType" }),
			new ClassInfo("IfcWorkControl", "IfcControl", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime" }),
			new ClassInfo("IfcWorkPlan", "IfcWorkControl", ClassType.Concrete, new[] { "ACTUAL", "BASELINE", "PLANNED", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime", "PredefinedType" }),
			new ClassInfo("IfcWorkSchedule", "IfcWorkControl", ClassType.Concrete, new[] { "ACTUAL", "BASELINE", "PLANNED", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime", "PredefinedType" }),
			new ClassInfo("IfcLightDistributionData", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationOrganizationResource", new[] { "MainPlaneAngle", "SecondaryPlaneAngle", "LuminousIntensity" }),
			new ClassInfo("IfcLightIntensityDistribution", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationOrganizationResource", new[] { "LightDistributionCurve", "DistributionData" }),
			new ClassInfo("IfcLightSource", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity" }),
			new ClassInfo("IfcGeometricRepresentationItem", "IfcRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "" }),
			new ClassInfo("IfcLightSourceAmbient", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity" }),
			new ClassInfo("IfcLightSourceDirectional", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Orientation" }),
			new ClassInfo("IfcLightSourceGoniometric", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "ColourAppearance", "ColourTemperature", "LuminousFlux", "LightEmissionSource", "LightDistributionDataSource" }),
			new ClassInfo("IfcLightSourcePositional", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "Radius", "ConstantAttenuation", "DistanceAttenuation", "QuadricAttenuation" }),
			new ClassInfo("IfcLightSourceSpot", "IfcLightSourcePositional", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "Radius", "ConstantAttenuation", "DistanceAttenuation", "QuadricAttenuation", "Orientation", "ConcentrationExponent", "SpreadAngle", "BeamWidthAngle" }),
			new ClassInfo("IfcPresentationLayerAssignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationOrganizationResource", new[] { "Name", "Description", "AssignedItems", "Identifier" }),
			new ClassInfo("IfcPresentationLayerWithStyle", "IfcPresentationLayerAssignment", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationOrganizationResource", new[] { "Name", "Description", "AssignedItems", "Identifier", "LayerOn", "LayerFrozen", "LayerBlocked", "LayerStyles" }),
			new ClassInfo("IfcAnnotationFillArea", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationDefinitionResource", new[] { "OuterBoundary", "InnerBoundaries" }),
			new ClassInfo("IfcBoxAlignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationDefinitionResource", new[] { "" }),
			new ClassInfo("IfcPlanarBox", "IfcPlanarExtent", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationDefinitionResource", new[] { "SizeInX", "SizeInY", "Placement" }),
			new ClassInfo("IfcPlanarExtent", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationDefinitionResource", new[] { "SizeInX", "SizeInY" }),
			new ClassInfo("IfcPresentationItem", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PresentationDefinitionResource", new[] { "" }),
			new ClassInfo("IfcTextLiteral", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationDefinitionResource", new[] { "Literal", "Placement", "Path" }),
			new ClassInfo("IfcTextLiteralWithExtent", "IfcTextLiteral", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationDefinitionResource", new[] { "Literal", "Placement", "Path", "Extent", "BoxAlignment" }),
			new ClassInfo("IfcBlobTexture", "IfcSurfaceTexture", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter", "RasterFormat", "RasterCode" }),
			new ClassInfo("IfcSurfaceTexture", "IfcPresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter" }),
			new ClassInfo("IfcColourRgb", "IfcColourSpecification", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name", "Red", "Green", "Blue" }),
			new ClassInfo("IfcColourSpecification", "IfcPresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcColourRgbList", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "ColourList" }),
			new ClassInfo("IfcCurveStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name", "CurveFont", "CurveWidth", "CurveColour", "ModelOrDraughting" }),
			new ClassInfo("IfcPresentationStyle", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcCurveStyleFont", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name", "PatternList" }),
			new ClassInfo("IfcCurveStyleFontAndScaling", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name", "CurveFont", "CurveFontScaling" }),
			new ClassInfo("IfcCurveStyleFontPattern", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "VisibleSegmentLength", "InvisibleSegmentLength" }),
			new ClassInfo("IfcDraughtingPreDefinedColour", "IfcPreDefinedColour", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedColour", "IfcPreDefinedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedItem", "IfcPresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcDraughtingPreDefinedCurveFont", "IfcPreDefinedCurveFont", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedCurveFont", "IfcPreDefinedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcExternallyDefinedHatchStyle", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Location", "Identification", "Name" }),
			new ClassInfo("IfcExternalReference", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "Location", "Identification", "Name" }),
			new ClassInfo("IfcExternallyDefinedSurfaceStyle", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Location", "Identification", "Name" }),
			new ClassInfo("IfcExternallyDefinedTextFont", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Location", "Identification", "Name" }),
			new ClassInfo("IfcFillAreaStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name", "FillStyles", "ModelorDraughting" }),
			new ClassInfo("IfcFillAreaStyleHatching", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "HatchLineAppearance", "StartOfNextHatchLine", "PointOfReferenceHatchLine", "PatternStart", "HatchLineAngle" }),
			new ClassInfo("IfcFillAreaStyleTiles", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "TilingPattern", "Tiles", "TilingScale" }),
			new ClassInfo("IfcFontStyle", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcFontVariant", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcFontWeight", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcImageTexture", "IfcSurfaceTexture", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter", "URLReference" }),
			new ClassInfo("IfcIndexedColourMap", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "MappedTo", "Opacity", "Colours", "ColourIndex" }),
			new ClassInfo("IfcIndexedTextureMap", "IfcTextureCoordinate", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Maps", "MappedTo", "TexCoords" }),
			new ClassInfo("IfcTextureCoordinate", "IfcPresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Maps" }),
			new ClassInfo("IfcIndexedTriangleTextureMap", "IfcIndexedTextureMap", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Maps", "MappedTo", "TexCoords", "TexCoordIndex" }),
			new ClassInfo("IfcNullStyle", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcPixelTexture", "IfcSurfaceTexture", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter", "Width", "Height", "ColourComponents", "Pixel" }),
			new ClassInfo("IfcPreDefinedTextFont", "IfcPreDefinedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcPresentableText", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcPresentationStyleAssignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Styles" }),
			new ClassInfo("IfcSpecularExponent", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcSpecularRoughness", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcStyledItem", "IfcRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Item", "Styles", "Name" }),
			new ClassInfo("IfcSurfaceStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name", "Side", "Styles" }),
			new ClassInfo("IfcSurfaceStyleLighting", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "DiffuseTransmissionColour", "DiffuseReflectionColour", "TransmissionColour", "ReflectanceColour" }),
			new ClassInfo("IfcSurfaceStyleRefraction", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "RefractionIndex", "DispersionFactor" }),
			new ClassInfo("IfcSurfaceStyleRendering", "IfcSurfaceStyleShading", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "SurfaceColour", "Transparency", "DiffuseColour", "TransmissionColour", "DiffuseTransmissionColour", "ReflectionColour", "SpecularColour", "SpecularHighlight", "ReflectanceMethod" }),
			new ClassInfo("IfcSurfaceStyleShading", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "SurfaceColour", "Transparency" }),
			new ClassInfo("IfcSurfaceStyleWithTextures", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Textures" }),
			new ClassInfo("IfcTextAlignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTextDecoration", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTextFontName", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTextStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name", "TextCharacterAppearance", "TextStyle", "TextFontStyle", "ModelOrDraughting" }),
			new ClassInfo("IfcTextStyleFontModel", "IfcPreDefinedTextFont", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Name", "FontFamily", "FontStyle", "FontVariant", "FontWeight", "FontSize" }),
			new ClassInfo("IfcTextStyleForDefinedFont", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Colour", "BackgroundColour" }),
			new ClassInfo("IfcTextStyleTextModel", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "TextIndent", "TextAlign", "TextDecoration", "LetterSpacing", "WordSpacing", "TextTransform", "LineHeight" }),
			new ClassInfo("IfcTextTransformation", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTextureCoordinateGenerator", "IfcTextureCoordinate", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Maps", "Mode", "Parameter" }),
			new ClassInfo("IfcTextureMap", "IfcTextureCoordinate", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Maps", "Vertices", "MappedTo" }),
			new ClassInfo("IfcTextureVertex", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "Coordinates" }),
			new ClassInfo("IfcTextureVertexList", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.PresentationAppearanceResource", new[] { "TexCoordsList" }),
			new ClassInfo("IfcFireSuppressionTerminal", "IfcFlowTerminal", ClassType.Concrete, new[] { "BREECHINGINLET", "FIREHYDRANT", "HOSEREEL", "SPRINKLER", "SPRINKLERDEFLECTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFireSuppressionTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "BREECHINGINLET", "FIREHYDRANT", "HOSEREEL", "SPRINKLER", "SPRINKLERDEFLECTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcInterceptor", "IfcFlowTreatmentDevice", ClassType.Concrete, new[] { "CYCLONIC", "GREASE", "OIL", "PETROL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcInterceptorType", "IfcFlowTreatmentDeviceType", ClassType.Concrete, new[] { "CYCLONIC", "GREASE", "OIL", "PETROL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSanitaryTerminal", "IfcFlowTerminal", ClassType.Concrete, new[] { "BATH", "BIDET", "CISTERN", "SHOWER", "SINK", "SANITARYFOUNTAIN", "TOILETPAN", "URINAL", "WASHHANDBASIN", "WCSEAT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSanitaryTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "BATH", "BIDET", "CISTERN", "SHOWER", "SINK", "SANITARYFOUNTAIN", "TOILETPAN", "URINAL", "WASHHANDBASIN", "WCSEAT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcStackTerminal", "IfcFlowTerminal", ClassType.Concrete, new[] { "BIRDCAGE", "COWL", "RAINWATERHOPPER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcStackTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "BIRDCAGE", "COWL", "RAINWATERHOPPER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcWasteTerminal", "IfcFlowTerminal", ClassType.Concrete, new[] { "FLOORTRAP", "FLOORWASTE", "GULLYSUMP", "GULLYTRAP", "ROOFDRAIN", "WASTEDISPOSALUNIT", "WASTETRAP", "USERDEFINED", "NOTDEFINED" }, "Ifc4.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcWasteTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "FLOORTRAP", "FLOORWASTE", "GULLYSUMP", "GULLYTRAP", "ROOFDRAIN", "WASTEDISPOSALUNIT", "WASTETRAP", "USERDEFINED", "NOTDEFINED" }, "Ifc4.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCardinalPointReference", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "" }),
			new ClassInfo("IfcMaterial", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "Name", "Description", "Category" }),
			new ClassInfo("IfcMaterialDefinition", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "" }),
			new ClassInfo("IfcMaterialClassificationRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "MaterialClassifications", "ClassifiedMaterial" }),
			new ClassInfo("IfcMaterialConstituent", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "Name", "Description", "Material", "Fraction", "Category" }),
			new ClassInfo("IfcMaterialConstituentSet", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "Name", "Description", "MaterialConstituents" }),
			new ClassInfo("IfcMaterialLayer", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "Material", "LayerThickness", "IsVentilated", "Name", "Description", "Category", "Priority" }),
			new ClassInfo("IfcMaterialLayerSet", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "MaterialLayers", "LayerSetName", "Description" }),
			new ClassInfo("IfcMaterialLayerSetUsage", "IfcMaterialUsageDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "ForLayerSet", "LayerSetDirection", "DirectionSense", "OffsetFromReferenceLine", "ReferenceExtent" }),
			new ClassInfo("IfcMaterialUsageDefinition", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "" }),
			new ClassInfo("IfcMaterialLayerWithOffsets", "IfcMaterialLayer", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "Material", "LayerThickness", "IsVentilated", "Name", "Description", "Category", "Priority", "OffsetDirection", "OffsetValues" }),
			new ClassInfo("IfcMaterialList", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "Materials" }),
			new ClassInfo("IfcMaterialProfile", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "Name", "Description", "Material", "Profile", "Priority", "Category" }),
			new ClassInfo("IfcMaterialProfileSet", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "Name", "Description", "MaterialProfiles", "CompositeProfile" }),
			new ClassInfo("IfcMaterialProfileSetUsage", "IfcMaterialUsageDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "ForProfileSet", "CardinalPoint", "ReferenceExtent" }),
			new ClassInfo("IfcMaterialProfileSetUsageTapering", "IfcMaterialProfileSetUsage", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "ForProfileSet", "CardinalPoint", "ReferenceExtent", "ForProfileEndSet", "CardinalEndPoint" }),
			new ClassInfo("IfcMaterialProfileWithOffsets", "IfcMaterialProfile", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "Name", "Description", "Material", "Profile", "Priority", "Category", "OffsetValues" }),
			new ClassInfo("IfcMaterialProperties", "IfcExtendedProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "Name", "Description", "Properties", "Material" }),
			new ClassInfo("IfcMaterialRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MaterialResource", new[] { "Name", "Description", "RelatingMaterial", "RelatedMaterials", "Expression" }),
			new ClassInfo("IfcComplexPropertyTemplate", "IfcPropertyTemplate", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "UsageName", "TemplateType", "HasPropertyTemplates" }),
			new ClassInfo("IfcPropertyTemplate", "IfcPropertyTemplateDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcPropertyTemplateDefinition", "IfcPropertyDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcContext", "IfcObjectDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "Phase", "RepresentationContexts", "UnitsInContext" }),
			new ClassInfo("IfcProject", "IfcContext", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "Phase", "RepresentationContexts", "UnitsInContext" }),
			new ClassInfo("IfcProjectLibrary", "IfcContext", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "Phase", "RepresentationContexts", "UnitsInContext" }),
			new ClassInfo("IfcPropertySet", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "HasProperties" }),
			new ClassInfo("IfcPropertySetDefinitionSet", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "" }),
			new ClassInfo("IfcPropertySetTemplate", "IfcPropertyTemplateDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "TemplateType", "ApplicableEntity", "HasPropertyTemplates" }),
			new ClassInfo("IfcProxy", "IfcProduct", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "ProxyType", "Tag" }),
			new ClassInfo("IfcRelAggregates", "IfcRelDecomposes", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingObject", "RelatedObjects" }),
			new ClassInfo("IfcRelAssigns", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType" }),
			new ClassInfo("IfcRelAssignsToActor", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingActor", "ActingRole" }),
			new ClassInfo("IfcRelAssignsToControl", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingControl" }),
			new ClassInfo("IfcRelAssignsToGroup", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingGroup" }),
			new ClassInfo("IfcRelAssignsToGroupByFactor", "IfcRelAssignsToGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingGroup", "Factor" }),
			new ClassInfo("IfcRelAssignsToProcess", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingProcess", "QuantityInProcess" }),
			new ClassInfo("IfcRelAssignsToProduct", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingProduct" }),
			new ClassInfo("IfcRelAssignsToResource", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingResource" }),
			new ClassInfo("IfcRelAssociatesClassification", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingClassification" }),
			new ClassInfo("IfcRelAssociatesDocument", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingDocument" }),
			new ClassInfo("IfcRelAssociatesLibrary", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingLibrary" }),
			new ClassInfo("IfcRelDeclares", "IfcRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingContext", "RelatedDefinitions" }),
			new ClassInfo("IfcRelDefines", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRelDefinesByObject", "IfcRelDefines", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingObject" }),
			new ClassInfo("IfcRelDefinesByProperties", "IfcRelDefines", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingPropertyDefinition" }),
			new ClassInfo("IfcRelDefinesByTemplate", "IfcRelDefines", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedPropertySets", "RelatingTemplate" }),
			new ClassInfo("IfcRelDefinesByType", "IfcRelDefines", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingType" }),
			new ClassInfo("IfcRelNests", "IfcRelDecomposes", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingObject", "RelatedObjects" }),
			new ClassInfo("IfcResource", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription" }),
			new ClassInfo("IfcSimplePropertyTemplate", "IfcPropertyTemplate", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "TemplateType", "PrimaryMeasureType", "SecondaryMeasureType", "Enumerators", "PrimaryUnit", "SecondaryUnit", "Expression", "AccessState" }),
			new ClassInfo("IfcTypeResource", "IfcTypeObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType" }),
			new ClassInfo("IfcLengthMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcNonNegativeLengthMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPositiveLengthMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAbsorbedDoseMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAccelerationMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAmountOfSubstanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAngularVelocityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAreaDensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAreaMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcBinary", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcBoolean", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcComplexNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcCompoundPlaneAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcContextDependentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcContextDependentUnit", "IfcNamedUnit", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "Dimensions", "UnitType", "Name" }),
			new ClassInfo("IfcNamedUnit", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "Dimensions", "UnitType" }),
			new ClassInfo("IfcConversionBasedUnit", "IfcNamedUnit", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "Dimensions", "UnitType", "Name", "ConversionFactor" }),
			new ClassInfo("IfcConversionBasedUnitWithOffset", "IfcConversionBasedUnit", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "Dimensions", "UnitType", "Name", "ConversionFactor", "ConversionOffset" }),
			new ClassInfo("IfcCountMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcCurvatureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcDerivedUnit", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "Elements", "UnitType", "UserDefinedType" }),
			new ClassInfo("IfcDerivedUnitElement", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "Unit", "Exponent" }),
			new ClassInfo("IfcDescriptiveMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcDimensionalExponents", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "LengthExponent", "MassExponent", "TimeExponent", "ElectricCurrentExponent", "ThermodynamicTemperatureExponent", "AmountOfSubstanceExponent", "LuminousIntensityExponent" }),
			new ClassInfo("IfcDoseEquivalentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcDynamicViscosityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricCapacitanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricChargeMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricConductanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricCurrentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricResistanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricVoltageMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcEnergyMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcForceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcFrequencyMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcHeatFluxDensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcHeatingValueMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIdentifier", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIlluminanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcInductanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcInteger", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIntegerCountRateMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIonConcentrationMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIsothermalMoistureCapacityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcKinematicViscosityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLabel", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearForceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearMomentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearStiffnessMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearVelocityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLogical", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLuminousFluxMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLuminousIntensityDistributionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLuminousIntensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMagneticFluxDensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMagneticFluxMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassDensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassFlowRateMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassPerLengthMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMeasureWithUnit", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "ValueComponent", "UnitComponent" }),
			new ClassInfo("IfcModulusOfElasticityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcModulusOfLinearSubgradeReactionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcModulusOfRotationalSubgradeReactionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcModulusOfSubgradeReactionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMoistureDiffusivityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMolecularWeightMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMomentOfInertiaMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMonetaryMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMonetaryUnit", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "Currency" }),
			new ClassInfo("IfcNormalisedRatioMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcNumericMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcParameterValue", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPHMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPlanarForceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPlaneAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPositiveInteger", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPositivePlaneAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPositiveRatioMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPowerMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPressureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRadioActivityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRatioMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcReal", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRotationalFrequencyMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRotationalMassMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRotationalStiffnessMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSectionalAreaIntegralMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSectionModulusMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcShearModulusMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSIUnit", "IfcNamedUnit", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "Dimensions", "UnitType", "Prefix", "Name" }),
			new ClassInfo("IfcSolidAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSoundPowerLevelMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSoundPowerMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSoundPressureLevelMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSoundPressureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSpecificHeatCapacityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTemperatureGradientMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTemperatureRateOfChangeMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcText", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalAdmittanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalConductivityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalExpansionCoefficientMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalResistanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalTransmittanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermodynamicTemperatureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTimeMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTorqueMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcUnitAssignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "Units" }),
			new ClassInfo("IfcVaporPermeabilityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcVolumeMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcVolumetricFlowRateMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcWarpingConstantMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcWarpingMomentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAirTerminal", "IfcFlowTerminal", ClassType.Concrete, new[] { "DIFFUSER", "GRILLE", "LOUVRE", "REGISTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcAirTerminalBox", "IfcFlowController", ClassType.Concrete, new[] { "CONSTANTFLOW", "VARIABLEFLOWPRESSUREDEPENDANT", "VARIABLEFLOWPRESSUREINDEPENDANT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcAirTerminalBoxType", "IfcFlowControllerType", ClassType.Concrete, new[] { "CONSTANTFLOW", "VARIABLEFLOWPRESSUREDEPENDANT", "VARIABLEFLOWPRESSUREINDEPENDANT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcAirTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "DIFFUSER", "GRILLE", "LOUVRE", "REGISTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcAirToAirHeatRecovery", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "FIXEDPLATECOUNTERFLOWEXCHANGER", "FIXEDPLATECROSSFLOWEXCHANGER", "FIXEDPLATEPARALLELFLOWEXCHANGER", "ROTARYWHEEL", "RUNAROUNDCOILLOOP", "HEATPIPE", "TWINTOWERENTHALPYRECOVERYLOOPS", "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS", "THERMOSIPHONCOILTYPEHEATEXCHANGERS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcAirToAirHeatRecoveryType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "FIXEDPLATECOUNTERFLOWEXCHANGER", "FIXEDPLATECROSSFLOWEXCHANGER", "FIXEDPLATEPARALLELFLOWEXCHANGER", "ROTARYWHEEL", "RUNAROUNDCOILLOOP", "HEATPIPE", "TWINTOWERENTHALPYRECOVERYLOOPS", "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS", "THERMOSIPHONCOILTYPEHEATEXCHANGERS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBoiler", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "WATER", "STEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBoilerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "WATER", "STEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBurner", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBurnerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcChiller", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "AIRCOOLED", "WATERCOOLED", "HEATRECOVERY", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcChillerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "AIRCOOLED", "WATERCOOLED", "HEATRECOVERY", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCoil", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "DXCOOLINGCOIL", "ELECTRICHEATINGCOIL", "GASHEATINGCOIL", "HYDRONICCOIL", "STEAMHEATINGCOIL", "WATERCOOLINGCOIL", "WATERHEATINGCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCoilType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DXCOOLINGCOIL", "ELECTRICHEATINGCOIL", "GASHEATINGCOIL", "HYDRONICCOIL", "STEAMHEATINGCOIL", "WATERCOOLINGCOIL", "WATERHEATINGCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCompressor", "IfcFlowMovingDevice", ClassType.Concrete, new[] { "DYNAMIC", "RECIPROCATING", "ROTARY", "SCROLL", "TROCHOIDAL", "SINGLESTAGE", "BOOSTER", "OPENTYPE", "HERMETIC", "SEMIHERMETIC", "WELDEDSHELLHERMETIC", "ROLLINGPISTON", "ROTARYVANE", "SINGLESCREW", "TWINSCREW", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCompressorType", "IfcFlowMovingDeviceType", ClassType.Concrete, new[] { "DYNAMIC", "RECIPROCATING", "ROTARY", "SCROLL", "TROCHOIDAL", "SINGLESTAGE", "BOOSTER", "OPENTYPE", "HERMETIC", "SEMIHERMETIC", "WELDEDSHELLHERMETIC", "ROLLINGPISTON", "ROTARYVANE", "SINGLESCREW", "TWINSCREW", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCondenser", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "AIRCOOLED", "EVAPORATIVECOOLED", "WATERCOOLED", "WATERCOOLEDBRAZEDPLATE", "WATERCOOLEDSHELLCOIL", "WATERCOOLEDSHELLTUBE", "WATERCOOLEDTUBEINTUBE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCondenserType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "AIRCOOLED", "EVAPORATIVECOOLED", "WATERCOOLED", "WATERCOOLEDBRAZEDPLATE", "WATERCOOLEDSHELLCOIL", "WATERCOOLEDSHELLTUBE", "WATERCOOLEDTUBEINTUBE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCooledBeam", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "ACTIVE", "PASSIVE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCooledBeamType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "ACTIVE", "PASSIVE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCoolingTower", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "NATURALDRAFT", "MECHANICALINDUCEDDRAFT", "MECHANICALFORCEDDRAFT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCoolingTowerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "NATURALDRAFT", "MECHANICALINDUCEDDRAFT", "MECHANICALFORCEDDRAFT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDamper", "IfcFlowController", ClassType.Concrete, new[] { "BACKDRAFTDAMPER", "BALANCINGDAMPER", "BLASTDAMPER", "CONTROLDAMPER", "FIREDAMPER", "FIRESMOKEDAMPER", "FUMEHOODEXHAUST", "GRAVITYDAMPER", "GRAVITYRELIEFDAMPER", "RELIEFDAMPER", "SMOKEDAMPER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDamperType", "IfcFlowControllerType", ClassType.Concrete, new[] { "BACKDRAFTDAMPER", "BALANCINGDAMPER", "BLASTDAMPER", "CONTROLDAMPER", "FIREDAMPER", "FIRESMOKEDAMPER", "FUMEHOODEXHAUST", "GRAVITYDAMPER", "GRAVITYRELIEFDAMPER", "RELIEFDAMPER", "SMOKEDAMPER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDuctFitting", "IfcFlowFitting", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "OBSTRUCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDuctFittingType", "IfcFlowFittingType", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "OBSTRUCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDuctSegment", "IfcFlowSegment", ClassType.Concrete, new[] { "RIGIDSEGMENT", "FLEXIBLESEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDuctSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "RIGIDSEGMENT", "FLEXIBLESEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDuctSilencer", "IfcFlowTreatmentDevice", ClassType.Concrete, new[] { "FLATOVAL", "RECTANGULAR", "ROUND", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDuctSilencerType", "IfcFlowTreatmentDeviceType", ClassType.Concrete, new[] { "FLATOVAL", "RECTANGULAR", "ROUND", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcEngine", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "EXTERNALCOMBUSTION", "INTERNALCOMBUSTION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcEngineType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "EXTERNALCOMBUSTION", "INTERNALCOMBUSTION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcEvaporativeCooler", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER", "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER", "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER", "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER", "DIRECTEVAPORATIVEAIRWASHER", "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER", "INDIRECTEVAPORATIVEWETCOIL", "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER", "INDIRECTDIRECTCOMBINATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcEvaporativeCoolerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER", "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER", "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER", "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER", "DIRECTEVAPORATIVEAIRWASHER", "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER", "INDIRECTEVAPORATIVEWETCOIL", "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER", "INDIRECTDIRECTCOMBINATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcEvaporator", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "DIRECTEXPANSION", "DIRECTEXPANSIONSHELLANDTUBE", "DIRECTEXPANSIONTUBEINTUBE", "DIRECTEXPANSIONBRAZEDPLATE", "FLOODEDSHELLANDTUBE", "SHELLANDCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcEvaporatorType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DIRECTEXPANSION", "DIRECTEXPANSIONSHELLANDTUBE", "DIRECTEXPANSIONTUBEINTUBE", "DIRECTEXPANSIONBRAZEDPLATE", "FLOODEDSHELLANDTUBE", "SHELLANDCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFan", "IfcFlowMovingDevice", ClassType.Concrete, new[] { "CENTRIFUGALFORWARDCURVED", "CENTRIFUGALRADIAL", "CENTRIFUGALBACKWARDINCLINEDCURVED", "CENTRIFUGALAIRFOIL", "TUBEAXIAL", "VANEAXIAL", "PROPELLORAXIAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFanType", "IfcFlowMovingDeviceType", ClassType.Concrete, new[] { "CENTRIFUGALFORWARDCURVED", "CENTRIFUGALRADIAL", "CENTRIFUGALBACKWARDINCLINEDCURVED", "CENTRIFUGALAIRFOIL", "TUBEAXIAL", "VANEAXIAL", "PROPELLORAXIAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFilter", "IfcFlowTreatmentDevice", ClassType.Concrete, new[] { "AIRPARTICLEFILTER", "COMPRESSEDAIRFILTER", "ODORFILTER", "OILFILTER", "STRAINER", "WATERFILTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFilterType", "IfcFlowTreatmentDeviceType", ClassType.Concrete, new[] { "AIRPARTICLEFILTER", "COMPRESSEDAIRFILTER", "ODORFILTER", "OILFILTER", "STRAINER", "WATERFILTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFlowMeter", "IfcFlowController", ClassType.Concrete, new[] { "ENERGYMETER", "GASMETER", "OILMETER", "WATERMETER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFlowMeterType", "IfcFlowControllerType", ClassType.Concrete, new[] { "ENERGYMETER", "GASMETER", "OILMETER", "WATERMETER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcHeatExchanger", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "PLATE", "SHELLANDTUBE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcHeatExchangerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "PLATE", "SHELLANDTUBE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcHumidifier", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "STEAMINJECTION", "ADIABATICAIRWASHER", "ADIABATICPAN", "ADIABATICWETTEDELEMENT", "ADIABATICATOMIZING", "ADIABATICULTRASONIC", "ADIABATICRIGIDMEDIA", "ADIABATICCOMPRESSEDAIRNOZZLE", "ASSISTEDELECTRIC", "ASSISTEDNATURALGAS", "ASSISTEDPROPANE", "ASSISTEDBUTANE", "ASSISTEDSTEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcHumidifierType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "STEAMINJECTION", "ADIABATICAIRWASHER", "ADIABATICPAN", "ADIABATICWETTEDELEMENT", "ADIABATICATOMIZING", "ADIABATICULTRASONIC", "ADIABATICRIGIDMEDIA", "ADIABATICCOMPRESSEDAIRNOZZLE", "ASSISTEDELECTRIC", "ASSISTEDNATURALGAS", "ASSISTEDPROPANE", "ASSISTEDBUTANE", "ASSISTEDSTEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcMedicalDevice", "IfcFlowTerminal", ClassType.Concrete, new[] { "AIRSTATION", "FEEDAIRUNIT", "OXYGENGENERATOR", "OXYGENPLANT", "VACUUMSTATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcMedicalDeviceType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "AIRSTATION", "FEEDAIRUNIT", "OXYGENGENERATOR", "OXYGENPLANT", "VACUUMSTATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPipeFitting", "IfcFlowFitting", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "OBSTRUCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPipeFittingType", "IfcFlowFittingType", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "OBSTRUCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPipeSegment", "IfcFlowSegment", ClassType.Concrete, new[] { "CULVERT", "FLEXIBLESEGMENT", "RIGIDSEGMENT", "GUTTER", "SPOOL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPipeSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "CULVERT", "FLEXIBLESEGMENT", "RIGIDSEGMENT", "GUTTER", "SPOOL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPump", "IfcFlowMovingDevice", ClassType.Concrete, new[] { "CIRCULATOR", "ENDSUCTION", "SPLITCASE", "SUBMERSIBLEPUMP", "SUMPPUMP", "VERTICALINLINE", "VERTICALTURBINE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPumpType", "IfcFlowMovingDeviceType", ClassType.Concrete, new[] { "CIRCULATOR", "ENDSUCTION", "SPLITCASE", "SUBMERSIBLEPUMP", "SUMPPUMP", "VERTICALINLINE", "VERTICALTURBINE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSpaceHeater", "IfcFlowTerminal", ClassType.Concrete, new[] { "CONVECTOR", "RADIATOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSpaceHeaterType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "CONVECTOR", "RADIATOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTank", "IfcFlowStorageDevice", ClassType.Concrete, new[] { "BASIN", "BREAKPRESSURE", "EXPANSION", "FEEDANDEXPANSION", "PRESSUREVESSEL", "STORAGE", "VESSEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcTankType", "IfcFlowStorageDeviceType", ClassType.Concrete, new[] { "BASIN", "BREAKPRESSURE", "EXPANSION", "FEEDANDEXPANSION", "PRESSUREVESSEL", "STORAGE", "VESSEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTubeBundle", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "FINNED", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcTubeBundleType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "FINNED", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcUnitaryEquipment", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "AIRHANDLER", "AIRCONDITIONINGUNIT", "DEHUMIDIFIER", "SPLITSYSTEM", "ROOFTOPUNIT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcUnitaryEquipmentType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "AIRHANDLER", "AIRCONDITIONINGUNIT", "DEHUMIDIFIER", "SPLITSYSTEM", "ROOFTOPUNIT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcValve", "IfcFlowController", ClassType.Concrete, new[] { "AIRRELEASE", "ANTIVACUUM", "CHANGEOVER", "CHECK", "COMMISSIONING", "DIVERTING", "DRAWOFFCOCK", "DOUBLECHECK", "DOUBLEREGULATING", "FAUCET", "FLUSHING", "GASCOCK", "GASTAP", "ISOLATING", "MIXING", "PRESSUREREDUCING", "PRESSURERELIEF", "REGULATING", "SAFETYCUTOFF", "STEAMTRAP", "STOPCOCK", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcValveType", "IfcFlowControllerType", ClassType.Concrete, new[] { "AIRRELEASE", "ANTIVACUUM", "CHANGEOVER", "CHECK", "COMMISSIONING", "DIVERTING", "DRAWOFFCOCK", "DOUBLECHECK", "DOUBLEREGULATING", "FAUCET", "FLUSHING", "GASCOCK", "GASTAP", "ISOLATING", "MIXING", "PRESSUREREDUCING", "PRESSURERELIEF", "REGULATING", "SAFETYCUTOFF", "STEAMTRAP", "STOPCOCK", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcVibrationIsolator", "IfcElementComponent", ClassType.Concrete, new[] { "COMPRESSION", "SPRING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcVibrationIsolatorType", "IfcElementComponentType", ClassType.Concrete, new[] { "COMPRESSION", "SPRING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcArcIndex", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "" }),
			new ClassInfo("IfcAxis1Placement", "IfcPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Location", "Axis" }),
			new ClassInfo("IfcPlacement", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Location" }),
			new ClassInfo("IfcAxis2Placement2D", "IfcPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Location", "RefDirection" }),
			new ClassInfo("IfcAxis2Placement3D", "IfcPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Location", "Axis", "RefDirection" }),
			new ClassInfo("IfcBoundaryCurve", "IfcCompositeCurveOnSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Segments", "SelfIntersect" }),
			new ClassInfo("IfcCompositeCurveOnSurface", "IfcCompositeCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Segments", "SelfIntersect" }),
			new ClassInfo("IfcCompositeCurve", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Segments", "SelfIntersect" }),
			new ClassInfo("IfcBoundedCurve", "IfcCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "" }),
			new ClassInfo("IfcCurve", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "" }),
			new ClassInfo("IfcBoundedSurface", "IfcSurface", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "" }),
			new ClassInfo("IfcSurface", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "" }),
			new ClassInfo("IfcBSplineCurve", "IfcBoundedCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect" }),
			new ClassInfo("IfcBSplineCurveWithKnots", "IfcBSplineCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect", "KnotMultiplicities", "Knots", "KnotSpec" }),
			new ClassInfo("IfcBSplineSurface", "IfcBoundedSurface", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "UDegree", "VDegree", "ControlPointsList", "SurfaceForm", "UClosed", "VClosed", "SelfIntersect" }),
			new ClassInfo("IfcBSplineSurfaceWithKnots", "IfcBSplineSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "UDegree", "VDegree", "ControlPointsList", "SurfaceForm", "UClosed", "VClosed", "SelfIntersect", "UMultiplicities", "VMultiplicities", "UKnots", "VKnots", "KnotSpec" }),
			new ClassInfo("IfcCartesianPoint", "IfcPoint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Coordinates" }),
			new ClassInfo("IfcPoint", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "" }),
			new ClassInfo("IfcCartesianTransformationOperator", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale" }),
			new ClassInfo("IfcCartesianTransformationOperator2D", "IfcCartesianTransformationOperator", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale" }),
			new ClassInfo("IfcCartesianTransformationOperator2DnonUniform", "IfcCartesianTransformationOperator2D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale", "Scale2" }),
			new ClassInfo("IfcCartesianTransformationOperator3D", "IfcCartesianTransformationOperator", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale", "Axis3" }),
			new ClassInfo("IfcCartesianTransformationOperator3DnonUniform", "IfcCartesianTransformationOperator3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale", "Axis3", "Scale2", "Scale3" }),
			new ClassInfo("IfcCircle", "IfcConic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Position", "Radius" }),
			new ClassInfo("IfcConic", "IfcCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Position" }),
			new ClassInfo("IfcCircularArcSegment2D", "IfcCurveSegment2D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "StartPoint", "StartDirection", "SegmentLength", "Radius", "IsCCW" }),
			new ClassInfo("IfcCurveSegment2D", "IfcBoundedCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "StartPoint", "StartDirection", "SegmentLength" }),
			new ClassInfo("IfcCompositeCurveSegment", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Transition", "SameSense", "ParentCurve" }),
			new ClassInfo("IfcCurveBoundedPlane", "IfcBoundedSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "BasisSurface", "OuterBoundary", "InnerBoundaries" }),
			new ClassInfo("IfcCurveBoundedSurface", "IfcBoundedSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "BasisSurface", "Boundaries", "ImplicitOuter" }),
			new ClassInfo("IfcCylindricalSurface", "IfcElementarySurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Position", "Radius" }),
			new ClassInfo("IfcElementarySurface", "IfcSurface", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Position" }),
			new ClassInfo("IfcDimensionCount", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "" }),
			new ClassInfo("IfcDirection", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "DirectionRatios" }),
			new ClassInfo("IfcDistanceExpression", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "DistanceAlong", "OffsetLateral", "OffsetVertical", "OffsetLongitudinal", "AlongHorizontal" }),
			new ClassInfo("IfcEllipse", "IfcConic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Position", "SemiAxis1", "SemiAxis2" }),
			new ClassInfo("IfcIndexedPolyCurve", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Points", "Segments", "SelfIntersect" }),
			new ClassInfo("IfcIntersectionCurve", "IfcSurfaceCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Curve3D", "AssociatedGeometry", "MasterRepresentation" }),
			new ClassInfo("IfcSurfaceCurve", "IfcCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Curve3D", "AssociatedGeometry", "MasterRepresentation" }),
			new ClassInfo("IfcLine", "IfcCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Pnt", "Dir" }),
			new ClassInfo("IfcLineIndex", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "" }),
			new ClassInfo("IfcLineSegment2D", "IfcCurveSegment2D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "StartPoint", "StartDirection", "SegmentLength" }),
			new ClassInfo("IfcMappedItem", "IfcRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "MappingSource", "MappingTarget" }),
			new ClassInfo("IfcOffsetCurve", "IfcCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "BasisCurve" }),
			new ClassInfo("IfcOffsetCurve2D", "IfcOffsetCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "BasisCurve", "Distance", "SelfIntersect" }),
			new ClassInfo("IfcOffsetCurve3D", "IfcOffsetCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "BasisCurve", "Distance", "SelfIntersect", "RefDirection" }),
			new ClassInfo("IfcOffsetCurveByDistances", "IfcOffsetCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "BasisCurve", "OffsetValues", "Tag" }),
			new ClassInfo("IfcOrientationExpression", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "LateralAxisDirection", "VerticalAxisDirection" }),
			new ClassInfo("IfcOuterBoundaryCurve", "IfcBoundaryCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Segments", "SelfIntersect" }),
			new ClassInfo("IfcPcurve", "IfcCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "BasisSurface", "ReferenceCurve" }),
			new ClassInfo("IfcPlane", "IfcElementarySurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Position" }),
			new ClassInfo("IfcPointOnCurve", "IfcPoint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "BasisCurve", "PointParameter" }),
			new ClassInfo("IfcPointOnSurface", "IfcPoint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "BasisSurface", "PointParameterU", "PointParameterV" }),
			new ClassInfo("IfcPolyline", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Points" }),
			new ClassInfo("IfcRationalBSplineCurveWithKnots", "IfcBSplineCurveWithKnots", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect", "KnotMultiplicities", "Knots", "KnotSpec", "WeightsData" }),
			new ClassInfo("IfcRationalBSplineSurfaceWithKnots", "IfcBSplineSurfaceWithKnots", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "UDegree", "VDegree", "ControlPointsList", "SurfaceForm", "UClosed", "VClosed", "SelfIntersect", "UMultiplicities", "VMultiplicities", "UKnots", "VKnots", "KnotSpec", "WeightsData" }),
			new ClassInfo("IfcRectangularTrimmedSurface", "IfcBoundedSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "BasisSurface", "U1", "V1", "U2", "V2", "Usense", "Vsense" }),
			new ClassInfo("IfcReparametrisedCompositeCurveSegment", "IfcCompositeCurveSegment", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Transition", "SameSense", "ParentCurve", "ParamLength" }),
			new ClassInfo("IfcRepresentationMap", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "MappingOrigin", "MappedRepresentation" }),
			new ClassInfo("IfcSeamCurve", "IfcSurfaceCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Curve3D", "AssociatedGeometry", "MasterRepresentation" }),
			new ClassInfo("IfcSphericalSurface", "IfcElementarySurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Position", "Radius" }),
			new ClassInfo("IfcSurfaceOfLinearExtrusion", "IfcSweptSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "SweptCurve", "Position", "ExtrudedDirection", "Depth" }),
			new ClassInfo("IfcSweptSurface", "IfcSurface", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "SweptCurve", "Position" }),
			new ClassInfo("IfcSurfaceOfRevolution", "IfcSweptSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "SweptCurve", "Position", "AxisPosition" }),
			new ClassInfo("IfcToroidalSurface", "IfcElementarySurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Position", "MajorRadius", "MinorRadius" }),
			new ClassInfo("IfcTransitionCurveSegment2D", "IfcCurveSegment2D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "StartPoint", "StartDirection", "SegmentLength", "StartRadius", "EndRadius", "IsStartRadiusCCW", "IsEndRadiusCCW", "TransitionCurveType" }),
			new ClassInfo("IfcTrimmedCurve", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "BasisCurve", "Trim1", "Trim2", "SenseAgreement", "MasterRepresentation" }),
			new ClassInfo("IfcVector", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometryResource", new[] { "Orientation", "Magnitude" }),
			new ClassInfo("IfcAdvancedBrep", "IfcManifoldSolidBrep", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Outer" }),
			new ClassInfo("IfcManifoldSolidBrep", "IfcSolidModel", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Outer" }),
			new ClassInfo("IfcSolidModel", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "" }),
			new ClassInfo("IfcAdvancedBrepWithVoids", "IfcAdvancedBrep", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Outer", "Voids" }),
			new ClassInfo("IfcBlock", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Position", "XLength", "YLength", "ZLength" }),
			new ClassInfo("IfcCsgPrimitive3D", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Position" }),
			new ClassInfo("IfcBooleanClippingResult", "IfcBooleanResult", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Operator", "FirstOperand", "SecondOperand" }),
			new ClassInfo("IfcBooleanResult", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Operator", "FirstOperand", "SecondOperand" }),
			new ClassInfo("IfcBoundingBox", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Corner", "XDim", "YDim", "ZDim" }),
			new ClassInfo("IfcBoxedHalfSpace", "IfcHalfSpaceSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "BaseSurface", "AgreementFlag", "Enclosure" }),
			new ClassInfo("IfcHalfSpaceSolid", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "BaseSurface", "AgreementFlag" }),
			new ClassInfo("IfcCartesianPointList", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "" }),
			new ClassInfo("IfcCartesianPointList2D", "IfcCartesianPointList", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "CoordList", "TagList" }),
			new ClassInfo("IfcCartesianPointList3D", "IfcCartesianPointList", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "CoordList", "TagList" }),
			new ClassInfo("IfcCsgSolid", "IfcSolidModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "TreeRootExpression" }),
			new ClassInfo("IfcExtrudedAreaSolid", "IfcSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "SweptArea", "Position", "ExtrudedDirection", "Depth" }),
			new ClassInfo("IfcSweptAreaSolid", "IfcSolidModel", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "SweptArea", "Position" }),
			new ClassInfo("IfcExtrudedAreaSolidTapered", "IfcExtrudedAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "SweptArea", "Position", "ExtrudedDirection", "Depth", "EndSweptArea" }),
			new ClassInfo("IfcFaceBasedSurfaceModel", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "FbsmFaces" }),
			new ClassInfo("IfcFacetedBrep", "IfcManifoldSolidBrep", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Outer" }),
			new ClassInfo("IfcFacetedBrepWithVoids", "IfcFacetedBrep", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Outer", "Voids" }),
			new ClassInfo("IfcFixedReferenceSweptAreaSolid", "IfcSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "SweptArea", "Position", "Directrix", "StartParam", "EndParam", "FixedReference" }),
			new ClassInfo("IfcGeometricCurveSet", "IfcGeometricSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Elements" }),
			new ClassInfo("IfcGeometricSet", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Elements" }),
			new ClassInfo("IfcIndexedPolygonalFace", "IfcTessellatedItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "CoordIndex" }),
			new ClassInfo("IfcTessellatedItem", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "" }),
			new ClassInfo("IfcIndexedPolygonalFaceWithVoids", "IfcIndexedPolygonalFace", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "CoordIndex", "InnerCoordIndices" }),
			new ClassInfo("IfcPolygonalBoundedHalfSpace", "IfcHalfSpaceSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "BaseSurface", "AgreementFlag", "Position", "PolygonalBoundary" }),
			new ClassInfo("IfcPolygonalFaceSet", "IfcTessellatedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Coordinates", "Closed", "Faces", "PnIndex" }),
			new ClassInfo("IfcTessellatedFaceSet", "IfcTessellatedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Coordinates" }),
			new ClassInfo("IfcRectangularPyramid", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Position", "XLength", "YLength", "Height" }),
			new ClassInfo("IfcRevolvedAreaSolid", "IfcSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "SweptArea", "Position", "Axis", "Angle" }),
			new ClassInfo("IfcRevolvedAreaSolidTapered", "IfcRevolvedAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "SweptArea", "Position", "Axis", "Angle", "EndSweptArea" }),
			new ClassInfo("IfcRightCircularCone", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Position", "Height", "BottomRadius" }),
			new ClassInfo("IfcRightCircularCylinder", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Position", "Height", "Radius" }),
			new ClassInfo("IfcSectionedSolid", "IfcSolidModel", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Directrix", "CrossSections" }),
			new ClassInfo("IfcSectionedSolidHorizontal", "IfcSectionedSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Directrix", "CrossSections", "CrossSectionPositions", "FixedAxisVertical" }),
			new ClassInfo("IfcSectionedSpine", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "SpineCurve", "CrossSections", "CrossSectionPositions" }),
			new ClassInfo("IfcShellBasedSurfaceModel", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "SbsmBoundary" }),
			new ClassInfo("IfcSphere", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Position", "Radius" }),
			new ClassInfo("IfcSurfaceCurveSweptAreaSolid", "IfcSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "SweptArea", "Position", "Directrix", "StartParam", "EndParam", "ReferenceSurface" }),
			new ClassInfo("IfcSweptDiskSolid", "IfcSolidModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Directrix", "Radius", "InnerRadius", "StartParam", "EndParam" }),
			new ClassInfo("IfcSweptDiskSolidPolygonal", "IfcSweptDiskSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Directrix", "Radius", "InnerRadius", "StartParam", "EndParam", "FilletRadius" }),
			new ClassInfo("IfcTriangulatedFaceSet", "IfcTessellatedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Coordinates", "Normals", "Closed", "CoordIndex", "PnIndex" }),
			new ClassInfo("IfcTriangulatedIrregularNetwork", "IfcTriangulatedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricModelResource", new[] { "Coordinates", "Normals", "Closed", "CoordIndex", "PnIndex", "Flags" }),
			new ClassInfo("IfcAlignment2DHorizontal", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "StartDistAlong", "Segments" }),
			new ClassInfo("IfcAlignment2DHorizontalSegment", "IfcAlignment2DSegment", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "TangentialContinuity", "StartTag", "EndTag", "CurveGeometry" }),
			new ClassInfo("IfcAlignment2DSegment", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "TangentialContinuity", "StartTag", "EndTag" }),
			new ClassInfo("IfcAlignment2DVerSegCircularArc", "IfcAlignment2DVerticalSegment", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "TangentialContinuity", "StartTag", "EndTag", "StartDistAlong", "HorizontalLength", "StartHeight", "StartGradient", "Radius", "IsConvex" }),
			new ClassInfo("IfcAlignment2DVerticalSegment", "IfcAlignment2DSegment", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "TangentialContinuity", "StartTag", "EndTag", "StartDistAlong", "HorizontalLength", "StartHeight", "StartGradient" }),
			new ClassInfo("IfcAlignment2DVerSegLine", "IfcAlignment2DVerticalSegment", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "TangentialContinuity", "StartTag", "EndTag", "StartDistAlong", "HorizontalLength", "StartHeight", "StartGradient" }),
			new ClassInfo("IfcAlignment2DVerSegParabolicArc", "IfcAlignment2DVerticalSegment", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "TangentialContinuity", "StartTag", "EndTag", "StartDistAlong", "HorizontalLength", "StartHeight", "StartGradient", "ParabolaConstant", "IsConvex" }),
			new ClassInfo("IfcAlignment2DVertical", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "Segments" }),
			new ClassInfo("IfcAlignmentCurve", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "Horizontal", "Vertical", "Tag" }),
			new ClassInfo("IfcConnectionCurveGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "CurveOnRelatingElement", "CurveOnRelatedElement" }),
			new ClassInfo("IfcConnectionGeometry", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "" }),
			new ClassInfo("IfcConnectionPointEccentricity", "IfcConnectionPointGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "PointOnRelatingElement", "PointOnRelatedElement", "EccentricityInX", "EccentricityInY", "EccentricityInZ" }),
			new ClassInfo("IfcConnectionPointGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "PointOnRelatingElement", "PointOnRelatedElement" }),
			new ClassInfo("IfcConnectionSurfaceGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "SurfaceOnRelatingElement", "SurfaceOnRelatedElement" }),
			new ClassInfo("IfcConnectionVolumeGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "VolumeOnRelatingElement", "VolumeOnRelatedElement" }),
			new ClassInfo("IfcGridAxis", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "AxisTag", "AxisCurve", "SameSense" }),
			new ClassInfo("IfcGridPlacement", "IfcObjectPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "PlacementLocation", "PlacementRefDirection" }),
			new ClassInfo("IfcObjectPlacement", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "" }),
			new ClassInfo("IfcLinearPlacement", "IfcObjectPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "PlacementRelTo", "Distance", "Orientation", "CartesianPosition" }),
			new ClassInfo("IfcLocalPlacement", "IfcObjectPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "PlacementRelTo", "RelativePlacement" }),
			new ClassInfo("IfcVirtualGridIntersection", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.GeometricConstraintResource", new[] { "IntersectingAxes", "OffsetDistances" }),
			new ClassInfo("IfcClassification", "IfcExternalInformation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "Source", "Edition", "EditionDate", "Name", "Description", "Location", "ReferenceTokens" }),
			new ClassInfo("IfcExternalInformation", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "" }),
			new ClassInfo("IfcClassificationReference", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "Location", "Identification", "Name", "ReferencedSource", "Description", "Sort" }),
			new ClassInfo("IfcDocumentInformation", "IfcExternalInformation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "Identification", "Name", "Description", "Location", "Purpose", "IntendedUse", "Scope", "Revision", "DocumentOwner", "Editors", "CreationTime", "LastRevisionTime", "ElectronicFormat", "ValidFrom", "ValidUntil", "Confidentiality", "Status" }),
			new ClassInfo("IfcDocumentInformationRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "Name", "Description", "RelatingDocument", "RelatedDocuments", "RelationshipType" }),
			new ClassInfo("IfcDocumentReference", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "Location", "Identification", "Name", "Description", "ReferencedDocument" }),
			new ClassInfo("IfcExternalReferenceRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "Name", "Description", "RelatingReference", "RelatedResourceObjects" }),
			new ClassInfo("IfcLanguageId", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "" }),
			new ClassInfo("IfcLibraryInformation", "IfcExternalInformation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "Name", "Version", "Publisher", "VersionDate", "Location", "Description" }),
			new ClassInfo("IfcLibraryReference", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "Location", "Identification", "Name", "Description", "Language", "ReferencedLibrary" }),
			new ClassInfo("IfcURIReference", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ExternalReferenceResource", new[] { "" }),
			new ClassInfo("IfcAudioVisualAppliance", "IfcFlowTerminal", ClassType.Concrete, new[] { "AMPLIFIER", "CAMERA", "DISPLAY", "MICROPHONE", "PLAYER", "PROJECTOR", "RECEIVER", "SPEAKER", "SWITCHER", "TELEPHONE", "TUNER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcAudioVisualApplianceType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "AMPLIFIER", "CAMERA", "DISPLAY", "MICROPHONE", "PLAYER", "PROJECTOR", "RECEIVER", "SPEAKER", "SWITCHER", "TELEPHONE", "TUNER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCableCarrierFitting", "IfcFlowFitting", ClassType.Concrete, new[] { "BEND", "CROSS", "REDUCER", "TEE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCableCarrierFittingType", "IfcFlowFittingType", ClassType.Concrete, new[] { "BEND", "CROSS", "REDUCER", "TEE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCableCarrierSegment", "IfcFlowSegment", ClassType.Concrete, new[] { "CABLELADDERSEGMENT", "CABLETRAYSEGMENT", "CABLETRUNKINGSEGMENT", "CONDUITSEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCableCarrierSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "CABLELADDERSEGMENT", "CABLETRAYSEGMENT", "CABLETRUNKINGSEGMENT", "CONDUITSEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCableFitting", "IfcFlowFitting", ClassType.Concrete, new[] { "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCableFittingType", "IfcFlowFittingType", ClassType.Concrete, new[] { "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCableSegment", "IfcFlowSegment", ClassType.Concrete, new[] { "BUSBARSEGMENT", "CABLESEGMENT", "CONDUCTORSEGMENT", "CORESEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCableSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "BUSBARSEGMENT", "CABLESEGMENT", "CONDUCTORSEGMENT", "CORESEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCommunicationsAppliance", "IfcFlowTerminal", ClassType.Concrete, new[] { "ANTENNA", "COMPUTER", "FAX", "GATEWAY", "MODEM", "NETWORKAPPLIANCE", "NETWORKBRIDGE", "NETWORKHUB", "PRINTER", "REPEATER", "ROUTER", "SCANNER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCommunicationsApplianceType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "ANTENNA", "COMPUTER", "FAX", "GATEWAY", "MODEM", "NETWORKAPPLIANCE", "NETWORKBRIDGE", "NETWORKHUB", "PRINTER", "REPEATER", "ROUTER", "SCANNER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricAppliance", "IfcFlowTerminal", ClassType.Concrete, new[] { "DISHWASHER", "ELECTRICCOOKER", "FREESTANDINGELECTRICHEATER", "FREESTANDINGFAN", "FREESTANDINGWATERHEATER", "FREESTANDINGWATERCOOLER", "FREEZER", "FRIDGE_FREEZER", "HANDDRYER", "KITCHENMACHINE", "MICROWAVE", "PHOTOCOPIER", "REFRIGERATOR", "TUMBLEDRYER", "VENDINGMACHINE", "WASHINGMACHINE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricApplianceType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "DISHWASHER", "ELECTRICCOOKER", "FREESTANDINGELECTRICHEATER", "FREESTANDINGFAN", "FREESTANDINGWATERHEATER", "FREESTANDINGWATERCOOLER", "FREEZER", "FRIDGE_FREEZER", "HANDDRYER", "KITCHENMACHINE", "MICROWAVE", "PHOTOCOPIER", "REFRIGERATOR", "TUMBLEDRYER", "VENDINGMACHINE", "WASHINGMACHINE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricDistributionBoard", "IfcFlowController", ClassType.Concrete, new[] { "CONSUMERUNIT", "DISTRIBUTIONBOARD", "MOTORCONTROLCENTRE", "SWITCHBOARD", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricDistributionBoardType", "IfcFlowControllerType", ClassType.Concrete, new[] { "CONSUMERUNIT", "DISTRIBUTIONBOARD", "MOTORCONTROLCENTRE", "SWITCHBOARD", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricFlowStorageDevice", "IfcFlowStorageDevice", ClassType.Concrete, new[] { "BATTERY", "CAPACITORBANK", "HARMONICFILTER", "INDUCTORBANK", "UPS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricFlowStorageDeviceType", "IfcFlowStorageDeviceType", ClassType.Concrete, new[] { "BATTERY", "CAPACITORBANK", "HARMONICFILTER", "INDUCTORBANK", "UPS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricGenerator", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "CHP", "ENGINEGENERATOR", "STANDALONE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricGeneratorType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "CHP", "ENGINEGENERATOR", "STANDALONE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricMotor", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "DC", "INDUCTION", "POLYPHASE", "RELUCTANCESYNCHRONOUS", "SYNCHRONOUS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricMotorType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DC", "INDUCTION", "POLYPHASE", "RELUCTANCESYNCHRONOUS", "SYNCHRONOUS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricTimeControl", "IfcFlowController", ClassType.Concrete, new[] { "TIMECLOCK", "TIMEDELAY", "RELAY", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricTimeControlType", "IfcFlowControllerType", ClassType.Concrete, new[] { "TIMECLOCK", "TIMEDELAY", "RELAY", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcJunctionBox", "IfcFlowFitting", ClassType.Concrete, new[] { "DATA", "POWER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcJunctionBoxType", "IfcFlowFittingType", ClassType.Concrete, new[] { "DATA", "POWER", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcLamp", "IfcFlowTerminal", ClassType.Concrete, new[] { "COMPACTFLUORESCENT", "FLUORESCENT", "HALOGEN", "HIGHPRESSUREMERCURY", "HIGHPRESSURESODIUM", "LED", "METALHALIDE", "OLED", "TUNGSTENFILAMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcLampType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "COMPACTFLUORESCENT", "FLUORESCENT", "HALOGEN", "HIGHPRESSUREMERCURY", "HIGHPRESSURESODIUM", "LED", "METALHALIDE", "OLED", "TUNGSTENFILAMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcLightFixture", "IfcFlowTerminal", ClassType.Concrete, new[] { "POINTSOURCE", "DIRECTIONSOURCE", "SECURITYLIGHTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcLightFixtureType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "POINTSOURCE", "DIRECTIONSOURCE", "SECURITYLIGHTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcMotorConnection", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "BELTDRIVE", "COUPLING", "DIRECTDRIVE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcMotorConnectionType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "BELTDRIVE", "COUPLING", "DIRECTDRIVE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcOutlet", "IfcFlowTerminal", ClassType.Concrete, new[] { "AUDIOVISUALOUTLET", "COMMUNICATIONSOUTLET", "POWEROUTLET", "DATAOUTLET", "TELEPHONEOUTLET", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcOutletType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "AUDIOVISUALOUTLET", "COMMUNICATIONSOUTLET", "POWEROUTLET", "DATAOUTLET", "TELEPHONEOUTLET", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcProtectiveDevice", "IfcFlowController", ClassType.Concrete, new[] { "CIRCUITBREAKER", "EARTHLEAKAGECIRCUITBREAKER", "EARTHINGSWITCH", "FUSEDISCONNECTOR", "RESIDUALCURRENTCIRCUITBREAKER", "RESIDUALCURRENTSWITCH", "VARISTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcProtectiveDeviceTrippingUnit", "IfcDistributionControlElement", ClassType.Concrete, new[] { "ELECTRONIC", "ELECTROMAGNETIC", "RESIDUALCURRENT", "THERMAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcProtectiveDeviceTrippingUnitType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "ELECTRONIC", "ELECTROMAGNETIC", "RESIDUALCURRENT", "THERMAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcProtectiveDeviceType", "IfcFlowControllerType", ClassType.Concrete, new[] { "CIRCUITBREAKER", "EARTHLEAKAGECIRCUITBREAKER", "EARTHINGSWITCH", "FUSEDISCONNECTOR", "RESIDUALCURRENTCIRCUITBREAKER", "RESIDUALCURRENTSWITCH", "VARISTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSolarDevice", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "SOLARCOLLECTOR", "SOLARPANEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSolarDeviceType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "SOLARCOLLECTOR", "SOLARPANEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSwitchingDevice", "IfcFlowController", ClassType.Concrete, new[] { "CONTACTOR", "DIMMERSWITCH", "EMERGENCYSTOP", "KEYPAD", "MOMENTARYSWITCH", "SELECTORSWITCH", "STARTER", "SWITCHDISCONNECTOR", "TOGGLESWITCH", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSwitchingDeviceType", "IfcFlowControllerType", ClassType.Concrete, new[] { "CONTACTOR", "DIMMERSWITCH", "EMERGENCYSTOP", "KEYPAD", "MOMENTARYSWITCH", "SELECTORSWITCH", "STARTER", "SWITCHDISCONNECTOR", "TOGGLESWITCH", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTransformer", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "CURRENT", "FREQUENCY", "INVERTER", "RECTIFIER", "VOLTAGE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcTransformerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "CURRENT", "FREQUENCY", "INVERTER", "RECTIFIER", "VOLTAGE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDate", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcDateTime", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcDayInMonthNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcDayInWeekNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcDuration", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcEventTime", "IfcSchedulingTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "ActualDate", "EarlyDate", "LateDate", "ScheduleDate" }),
			new ClassInfo("IfcSchedulingTime", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin" }),
			new ClassInfo("IfcIrregularTimeSeries", "IfcTimeSeries", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit", "Values" }),
			new ClassInfo("IfcTimeSeries", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit" }),
			new ClassInfo("IfcIrregularTimeSeriesValue", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "TimeStamp", "ListValues" }),
			new ClassInfo("IfcLagTime", "IfcSchedulingTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "LagValue", "DurationType" }),
			new ClassInfo("IfcMonthInYearNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcRecurrencePattern", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "RecurrenceType", "DayComponent", "WeekdayComponent", "MonthComponent", "Position", "Interval", "Occurrences", "TimePeriods" }),
			new ClassInfo("IfcRegularTimeSeries", "IfcTimeSeries", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit", "TimeStep", "Values" }),
			new ClassInfo("IfcResourceTime", "IfcSchedulingTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "ScheduleWork", "ScheduleUsage", "ScheduleStart", "ScheduleFinish", "ScheduleContour", "LevelingDelay", "IsOverAllocated", "StatusTime", "ActualWork", "ActualUsage", "ActualStart", "ActualFinish", "RemainingWork", "RemainingUsage", "Completion" }),
			new ClassInfo("IfcTaskTime", "IfcSchedulingTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "DurationType", "ScheduleDuration", "ScheduleStart", "ScheduleFinish", "EarlyStart", "EarlyFinish", "LateStart", "LateFinish", "FreeFloat", "TotalFloat", "IsCritical", "StatusTime", "ActualDuration", "ActualStart", "ActualFinish", "RemainingTime", "Completion" }),
			new ClassInfo("IfcTaskTimeRecurring", "IfcTaskTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "DurationType", "ScheduleDuration", "ScheduleStart", "ScheduleFinish", "EarlyStart", "EarlyFinish", "LateStart", "LateFinish", "FreeFloat", "TotalFloat", "IsCritical", "StatusTime", "ActualDuration", "ActualStart", "ActualFinish", "RemainingTime", "Completion", "Recurrence" }),
			new ClassInfo("IfcTime", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcTimePeriod", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "StartTime", "EndTime" }),
			new ClassInfo("IfcTimeSeriesValue", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "ListValues" }),
			new ClassInfo("IfcTimeStamp", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcWorkTime", "IfcSchedulingTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "RecurrencePattern", "Start", "Finish" }),
			new ClassInfo("IfcAppliedValue", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.CostResource", new[] { "Name", "Description", "AppliedValue", "UnitBasis", "ApplicableDate", "FixedUntilDate", "Category", "Condition", "ArithmeticOperator", "Components" }),
			new ClassInfo("IfcCostValue", "IfcAppliedValue", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.CostResource", new[] { "Name", "Description", "AppliedValue", "UnitBasis", "ApplicableDate", "FixedUntilDate", "Category", "Condition", "ArithmeticOperator", "Components" }),
			new ClassInfo("IfcCurrencyRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.CostResource", new[] { "Name", "Description", "RelatingMonetaryUnit", "RelatedMonetaryUnit", "ExchangeRate", "RateDateTime", "RateSource" }),
			new ClassInfo("IfcPerformanceHistory", "IfcControl", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4.ControlExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LifeCyclePhase", "PredefinedType" }),
			new ClassInfo("IfcRelAssociatesApproval", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ControlExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingApproval" }),
			new ClassInfo("IfcRelAssociatesConstraint", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ControlExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "Intent", "RelatingConstraint" }),
			new ClassInfo("IfcConstructionEquipmentResource", "IfcConstructionResource", ClassType.Concrete, new[] { "DEMOLISHING", "EARTHMOVING", "ERECTING", "HEATING", "LIGHTING", "PAVING", "PUMPING", "TRANSPORTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstructionResource", "IfcResource", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity" }),
			new ClassInfo("IfcConstructionEquipmentResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "DEMOLISHING", "EARTHMOVING", "ERECTING", "HEATING", "LIGHTING", "PAVING", "PUMPING", "TRANSPORTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstructionResourceType", "IfcTypeResource", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity" }),
			new ClassInfo("IfcConstructionMaterialResource", "IfcConstructionResource", ClassType.Concrete, new[] { "AGGREGATES", "CONCRETE", "DRYWALL", "FUEL", "GYPSUM", "MASONRY", "METAL", "PLASTIC", "WOOD", "NOTDEFINED", "USERDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstructionMaterialResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "AGGREGATES", "CONCRETE", "DRYWALL", "FUEL", "GYPSUM", "MASONRY", "METAL", "PLASTIC", "WOOD", "NOTDEFINED", "USERDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstructionProductResource", "IfcConstructionResource", ClassType.Concrete, new[] { "ASSEMBLY", "FORMWORK", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstructionProductResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "ASSEMBLY", "FORMWORK", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcCrewResource", "IfcConstructionResource", ClassType.Concrete, new[] { "OFFICE", "SITE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcCrewResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "OFFICE", "SITE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcLaborResource", "IfcConstructionResource", ClassType.Concrete, new[] { "ADMINISTRATION", "CARPENTRY", "CLEANING", "CONCRETE", "DRYWALL", "ELECTRIC", "FINISHING", "FLOORING", "GENERAL", "HVAC", "LANDSCAPING", "MASONRY", "PAINTING", "PAVING", "PLUMBING", "ROOFING", "SITEGRADING", "STEELWORK", "SURVEYING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcLaborResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "ADMINISTRATION", "CARPENTRY", "CLEANING", "CONCRETE", "DRYWALL", "ELECTRIC", "FINISHING", "FLOORING", "GENERAL", "HVAC", "LANDSCAPING", "MASONRY", "PAINTING", "PAVING", "PLUMBING", "ROOFING", "SITEGRADING", "STEELWORK", "SURVEYING", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcSubContractResource", "IfcConstructionResource", ClassType.Concrete, new[] { "PURCHASE", "WORK", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcSubContractResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "PURCHASE", "WORK", "USERDEFINED", "NOTDEFINED" }, "Ifc4.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstraint", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ConstraintResource", new[] { "Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade" }),
			new ClassInfo("IfcMetric", "IfcConstraint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ConstraintResource", new[] { "Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade", "Benchmark", "ValueSource", "DataValue", "ReferencePath" }),
			new ClassInfo("IfcObjective", "IfcConstraint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ConstraintResource", new[] { "Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade", "BenchmarkValues", "LogicalAggregator", "ObjectiveQualifier", "UserDefinedQualifier" }),
			new ClassInfo("IfcReference", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ConstraintResource", new[] { "TypeIdentifier", "AttributeIdentifier", "InstanceName", "ListPositions", "InnerReference" }),
			new ClassInfo("IfcResourceConstraintRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ConstraintResource", new[] { "Name", "Description", "RelatingConstraint", "RelatedResourceObjects" }),
			new ClassInfo("IfcActuator", "IfcDistributionControlElement", ClassType.Concrete, new[] { "ELECTRICACTUATOR", "HANDOPERATEDACTUATOR", "HYDRAULICACTUATOR", "PNEUMATICACTUATOR", "THERMOSTATICACTUATOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcActuatorType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "ELECTRICACTUATOR", "HANDOPERATEDACTUATOR", "HYDRAULICACTUATOR", "PNEUMATICACTUATOR", "THERMOSTATICACTUATOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcAlarm", "IfcDistributionControlElement", ClassType.Concrete, new[] { "BELL", "BREAKGLASSBUTTON", "LIGHT", "MANUALPULLBOX", "SIREN", "WHISTLE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcAlarmType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "BELL", "BREAKGLASSBUTTON", "LIGHT", "MANUALPULLBOX", "SIREN", "WHISTLE", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcController", "IfcDistributionControlElement", ClassType.Concrete, new[] { "FLOATING", "PROGRAMMABLE", "PROPORTIONAL", "MULTIPOSITION", "TWOPOSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcControllerType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "FLOATING", "PROGRAMMABLE", "PROPORTIONAL", "MULTIPOSITION", "TWOPOSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFlowInstrument", "IfcDistributionControlElement", ClassType.Concrete, new[] { "PRESSUREGAUGE", "THERMOMETER", "AMMETER", "FREQUENCYMETER", "POWERFACTORMETER", "PHASEANGLEMETER", "VOLTMETER_PEAK", "VOLTMETER_RMS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFlowInstrumentType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "PRESSUREGAUGE", "THERMOMETER", "AMMETER", "FREQUENCYMETER", "POWERFACTORMETER", "PHASEANGLEMETER", "VOLTMETER_PEAK", "VOLTMETER_RMS", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSensor", "IfcDistributionControlElement", ClassType.Concrete, new[] { "COSENSOR", "CO2SENSOR", "CONDUCTANCESENSOR", "CONTACTSENSOR", "FIRESENSOR", "FLOWSENSOR", "FROSTSENSOR", "GASSENSOR", "HEATSENSOR", "HUMIDITYSENSOR", "IDENTIFIERSENSOR", "IONCONCENTRATIONSENSOR", "LEVELSENSOR", "LIGHTSENSOR", "MOISTURESENSOR", "MOVEMENTSENSOR", "PHSENSOR", "PRESSURESENSOR", "RADIATIONSENSOR", "RADIOACTIVITYSENSOR", "SMOKESENSOR", "SOUNDSENSOR", "TEMPERATURESENSOR", "WINDSENSOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSensorType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "COSENSOR", "CO2SENSOR", "CONDUCTANCESENSOR", "CONTACTSENSOR", "FIRESENSOR", "FLOWSENSOR", "FROSTSENSOR", "GASSENSOR", "HEATSENSOR", "HUMIDITYSENSOR", "IDENTIFIERSENSOR", "IONCONCENTRATIONSENSOR", "LEVELSENSOR", "LIGHTSENSOR", "MOISTURESENSOR", "MOVEMENTSENSOR", "PHSENSOR", "PRESSURESENSOR", "RADIATIONSENSOR", "RADIOACTIVITYSENSOR", "SMOKESENSOR", "SOUNDSENSOR", "TEMPERATURESENSOR", "WINDSENSOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcUnitaryControlElement", "IfcDistributionControlElement", ClassType.Concrete, new[] { "ALARMPANEL", "CONTROLPANEL", "GASDETECTIONPANEL", "INDICATORPANEL", "MIMICPANEL", "HUMIDISTAT", "THERMOSTAT", "WEATHERSTATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcUnitaryControlElementType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "ALARMPANEL", "CONTROLPANEL", "GASDETECTIONPANEL", "INDICATORPANEL", "MIMICPANEL", "HUMIDISTAT", "THERMOSTAT", "WEATHERSTATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDoorLiningProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "LiningDepth", "LiningThickness", "ThresholdDepth", "ThresholdThickness", "TransomThickness", "TransomOffset", "LiningOffset", "ThresholdOffset", "CasingThickness", "CasingDepth", "ShapeAspectStyle", "LiningToPanelOffsetX", "LiningToPanelOffsetY" }),
			new ClassInfo("IfcDoorPanelProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "PanelDepth", "PanelOperation", "PanelWidth", "PanelPosition", "ShapeAspectStyle" }),
			new ClassInfo("IfcDoorStyle", "IfcTypeProduct", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "OperationType", "ConstructionType", "ParameterTakesPrecedence", "Sizeable" }),
			new ClassInfo("IfcPermeableCoveringProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "OperationType", "PanelPosition", "FrameDepth", "FrameThickness", "ShapeAspectStyle" }),
			new ClassInfo("IfcWindowLiningProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "LiningDepth", "LiningThickness", "TransomThickness", "MullionThickness", "FirstTransomOffset", "SecondTransomOffset", "FirstMullionOffset", "SecondMullionOffset", "ShapeAspectStyle", "LiningOffset", "LiningToPanelOffsetX", "LiningToPanelOffsetY" }),
			new ClassInfo("IfcWindowPanelProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "OperationType", "PanelPosition", "FrameDepth", "FrameThickness", "ShapeAspectStyle" }),
			new ClassInfo("IfcWindowStyle", "IfcTypeProduct", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ConstructionType", "OperationType", "ParameterTakesPrecedence", "Sizeable" }),
			new ClassInfo("IfcApproval", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ApprovalResource", new[] { "Identifier", "Name", "Description", "TimeOfApproval", "Status", "Level", "Qualifier", "RequestingApproval", "GivingApproval" }),
			new ClassInfo("IfcApprovalRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ApprovalResource", new[] { "Name", "Description", "RelatingApproval", "RelatedApprovals" }),
			new ClassInfo("IfcResourceApprovalRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ApprovalResource", new[] { "Name", "Description", "RelatedResourceObjects", "RelatingApproval" }),
			new ClassInfo("IfcActorRole", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ActorResource", new[] { "Role", "UserDefinedRole", "Description" }),
			new ClassInfo("IfcAddress", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4.ActorResource", new[] { "Purpose", "Description", "UserDefinedPurpose" }),
			new ClassInfo("IfcOrganization", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ActorResource", new[] { "Identification", "Name", "Description", "Roles", "Addresses" }),
			new ClassInfo("IfcOrganizationRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ActorResource", new[] { "Name", "Description", "RelatingOrganization", "RelatedOrganizations" }),
			new ClassInfo("IfcPerson", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ActorResource", new[] { "Identification", "FamilyName", "GivenName", "MiddleNames", "PrefixTitles", "SuffixTitles", "Roles", "Addresses" }),
			new ClassInfo("IfcPersonAndOrganization", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ActorResource", new[] { "ThePerson", "TheOrganization", "Roles" }),
			new ClassInfo("IfcPostalAddress", "IfcAddress", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ActorResource", new[] { "Purpose", "Description", "UserDefinedPurpose", "InternalLocation", "AddressLines", "PostalBox", "Town", "Region", "PostalCode", "Country" }),
			new ClassInfo("IfcTelecomAddress", "IfcAddress", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4.ActorResource", new[] { "Purpose", "Description", "UserDefinedPurpose", "TelephoneNumbers", "FacsimileNumbers", "PagerNumber", "ElectronicMailAddresses", "WWWHomePageURL", "MessagingIDs" }),
		};
		return schema;
	}

    private static partial SchemaInfo GetClassesIFC4x3() 
	{
		var schema = new SchemaInfo(IfcSchemaVersions.Ifc4x3) {
			new ClassInfo("IfcBorehole", "IfcGeotechnicalAssembly", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcGeotechnicalAssembly", "IfcGeotechnicalElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcGeotechnicalElement", "IfcElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcElement", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcProduct", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcObject", "IfcObjectDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcObjectDefinition", "IfcRoot", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRoot", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcCourse", "IfcBuiltElement", ClassType.Concrete, new[] { "ARMOUR", "BALLASTBED", "CORE", "FILTER", "PAVEMENT", "PROTECTION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBuiltElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcCourseType", "IfcBuiltElementType", ClassType.Concrete, new[] { "ARMOUR", "BALLASTBED", "CORE", "FILTER", "PAVEMENT", "PROTECTION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBuiltElementType", "IfcElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcElementType", "IfcTypeProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcTypeProduct", "IfcTypeObject", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag" }),
			new ClassInfo("IfcTypeObject", "IfcObjectDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets" }),
			new ClassInfo("IfcEarthworksCut", "IfcFeatureElementSubtraction", ClassType.Concrete, new[] { "BASE_EXCAVATION", "CUT", "DREDGING", "EXCAVATION", "OVEREXCAVATION", "PAVEMENTMILLING", "STEPEXCAVATION", "TOPSOILREMOVAL", "TRENCH", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFeatureElementSubtraction", "IfcFeatureElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFeatureElement", "IfcElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcEarthworksElement", "IfcBuiltElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcEarthworksFill", "IfcEarthworksElement", ClassType.Concrete, new[] { "BACKFILL", "COUNTERWEIGHT", "EMBANKMENT", "SLOPEFILL", "SUBGRADE", "SUBGRADEBED", "TRANSITIONSECTION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcGeomodel", "IfcGeotechnicalAssembly", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcGeoslice", "IfcGeotechnicalAssembly", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcGeotechnicalStratum", "IfcGeotechnicalElement", ClassType.Concrete, new[] { "SOLID", "VOID", "WATER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPavement", "IfcBuiltElement", ClassType.Concrete, new[] { "FLEXIBLE", "RIGID", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPavementType", "IfcBuiltElementType", ClassType.Concrete, new[] { "FLEXIBLE", "RIGID", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcReinforcedSoil", "IfcEarthworksElement", ClassType.Concrete, new[] { "DYNAMICALLYCOMPACTED", "GROUTED", "REPLACED", "ROLLERCOMPACTED", "SURCHARGEPRELOADED", "VERTICALLYDRAINED", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSign", "IfcElementComponent", ClassType.Concrete, new[] { "MARKER", "MIRROR", "PICTORAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElementComponent", "IfcElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcSignal", "IfcFlowTerminal", ClassType.Concrete, new[] { "AUDIO", "MIXED", "VISUAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFlowTerminal", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcDistributionFlowElement", "IfcDistributionElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcDistributionElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcSignalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "AUDIO", "MIXED", "VISUAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFlowTerminalType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcDistributionFlowElementType", "IfcDistributionElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcDistributionElementType", "IfcElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcSignType", "IfcElementComponentType", ClassType.Concrete, new[] { "MARKER", "MIRROR", "PICTORAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedInfrastructureElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElementComponentType", "IfcElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcKerb", "IfcBuiltElement", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.RoadDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcKerbType", "IfcBuiltElementType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.RoadDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRoad", "IfcFacility", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.RoadDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "PredefinedType" }),
			new ClassInfo("IfcFacility", "IfcSpatialStructureElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType" }),
			new ClassInfo("IfcSpatialStructureElement", "IfcSpatialElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType" }),
			new ClassInfo("IfcSpatialElement", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName" }),
			new ClassInfo("IfcRoadPart", "IfcFacilityPart", ClassType.Concrete, new[] { "BICYCLECROSSING", "BUS_STOP", "CARRIAGEWAY", "CENTRALISLAND", "CENTRALRESERVE", "HARDSHOULDER", "INTERSECTION", "LAYBY", "PARKINGBAY", "PASSINGBAY", "PEDESTRIAN_CROSSING", "RAILWAYCROSSING", "REFUGEISLAND", "ROADSEGMENT", "ROADSIDE", "ROADSIDEPART", "ROADWAYPLATEAU", "ROUNDABOUT", "SHOULDER", "SIDEWALK", "SOFTSHOULDER", "TOLLPLAZA", "TRAFFICISLAND", "TRAFFICLANE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.RoadDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "UsageType", "PredefinedType" }),
			new ClassInfo("IfcFacilityPart", "IfcSpatialStructureElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "UsageType" }),
			new ClassInfo("IfcRail", "IfcBuiltElement", ClassType.Concrete, new[] { "BLADE", "CHECKRAIL", "GUARDRAIL", "RACKRAIL", "RAIL", "STOCKRAIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.RailDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcRailType", "IfcBuiltElementType", ClassType.Concrete, new[] { "BLADE", "CHECKRAIL", "GUARDRAIL", "RACKRAIL", "RAIL", "STOCKRAIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.RailDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRailway", "IfcFacility", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.RailDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "PredefinedType" }),
			new ClassInfo("IfcRailwayPart", "IfcFacilityPart", ClassType.Concrete, new[] { "ABOVETRACK", "DILATIONTRACK", "LINESIDE", "LINESIDEPART", "PLAINTRACK", "SUBSTRUCTURE", "TRACK", "TRACKPART", "TURNOUTTRACK", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.RailDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "UsageType", "PredefinedType" }),
			new ClassInfo("IfcTrackElement", "IfcBuiltElement", ClassType.Concrete, new[] { "BLOCKINGDEVICE", "DERAILER", "FROG", "HALF_SET_OF_BLADES", "SLEEPER", "SPEEDREGULATOR", "TRACKENDOFALIGNMENT", "VEHICLESTOP", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.RailDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcTrackElementType", "IfcBuiltElementType", ClassType.Concrete, new[] { "BLOCKINGDEVICE", "DERAILER", "FROG", "HALF_SET_OF_BLADES", "SLEEPER", "SPEEDREGULATOR", "TRACKENDOFALIGNMENT", "VEHICLESTOP", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.RailDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcConveyorSegment", "IfcFlowSegment", ClassType.Concrete, new[] { "BELTCONVEYOR", "BUCKETCONVEYOR", "CHUTECONVEYOR", "SCREWCONVEYOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PortsAndWaterwaysDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFlowSegment", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcConveyorSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "BELTCONVEYOR", "BUCKETCONVEYOR", "CHUTECONVEYOR", "SCREWCONVEYOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PortsAndWaterwaysDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFlowSegmentType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcLiquidTerminal", "IfcFlowTerminal", ClassType.Concrete, new[] { "HOSEREEL", "LOADINGARM", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PortsAndWaterwaysDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcLiquidTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "HOSEREEL", "LOADINGARM", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PortsAndWaterwaysDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcMarineFacility", "IfcFacility", ClassType.Concrete, new[] { "BARRIERBEACH", "BREAKWATER", "CANAL", "DRYDOCK", "FLOATINGDOCK", "HYDROLIFT", "JETTY", "LAUNCHRECOVERY", "MARINEDEFENCE", "NAVIGATIONALCHANNEL", "PORT", "QUAY", "REVETMENT", "SHIPLIFT", "SHIPLOCK", "SHIPYARD", "SLIPWAY", "WATERWAY", "WATERWAYSHIPLIFT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PortsAndWaterwaysDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "PredefinedType" }),
			new ClassInfo("IfcMarinePart", "IfcFacilityPart", ClassType.Concrete, new[] { "ABOVEWATERLINE", "ANCHORAGE", "APPROACHCHANNEL", "BELOWWATERLINE", "BERTHINGSTRUCTURE", "CHAMBER", "CILL_LEVEL", "COPELEVEL", "CORE", "CREST", "GATEHEAD", "GUDINGSTRUCTURE", "HIGHWATERLINE", "LANDFIELD", "LEEWARDSIDE", "LOWWATERLINE", "MANUFACTURING", "NAVIGATIONALAREA", "PROTECTION", "SHIPTRANSFER", "STORAGEAREA", "VEHICLESERVICING", "WATERFIELD", "WEATHERSIDE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PortsAndWaterwaysDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "UsageType", "PredefinedType" }),
			new ClassInfo("IfcMooringDevice", "IfcBuiltElement", ClassType.Concrete, new[] { "BOLLARD", "LINETENSIONER", "MAGNETICDEVICE", "MOORINGHOOKS", "VACUUMDEVICE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PortsAndWaterwaysDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcMooringDeviceType", "IfcBuiltElementType", ClassType.Concrete, new[] { "BOLLARD", "LINETENSIONER", "MAGNETICDEVICE", "MOORINGHOOKS", "VACUUMDEVICE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PortsAndWaterwaysDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcNavigationElement", "IfcBuiltElement", ClassType.Concrete, new[] { "BEACON", "BUOY", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PortsAndWaterwaysDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcNavigationElementType", "IfcBuiltElementType", ClassType.Concrete, new[] { "BEACON", "BUOY", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PortsAndWaterwaysDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRelConnectsStructuralActivity", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedStructuralActivity" }),
			new ClassInfo("IfcRelConnects", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRelationship", "IfcRoot", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRelConnectsStructuralMember", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingStructuralMember", "RelatedStructuralConnection", "AppliedCondition", "AdditionalConditions", "SupportedLength", "ConditionCoordinateSystem" }),
			new ClassInfo("IfcRelConnectsWithEccentricity", "IfcRelConnectsStructuralMember", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingStructuralMember", "RelatedStructuralConnection", "AppliedCondition", "AdditionalConditions", "SupportedLength", "ConditionCoordinateSystem", "ConnectionConstraint" }),
			new ClassInfo("IfcStructuralAction", "IfcStructuralActivity", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad" }),
			new ClassInfo("IfcStructuralActivity", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal" }),
			new ClassInfo("IfcStructuralAnalysisModel", "IfcSystem", ClassType.Concrete, new[] { "IN_PLANE_LOADING_2D", "LOADING_3D", "OUT_PLANE_LOADING_2D", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "OrientationOf2DPlane", "LoadedBy", "HasResults", "SharedPlacement" }),
			new ClassInfo("IfcSystem", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcGroup", "IfcObject", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType" }),
			new ClassInfo("IfcStructuralConnection", "IfcStructuralItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition" }),
			new ClassInfo("IfcStructuralItem", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcStructuralCurveAction", "IfcStructuralAction", ClassType.Concrete, new[] { "CONST", "DISCRETE", "EQUIDISTANT", "LINEAR", "PARABOLA", "POLYGONAL", "SINUS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType" }),
			new ClassInfo("IfcStructuralCurveConnection", "IfcStructuralConnection", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition", "AxisDirection" }),
			new ClassInfo("IfcStructuralCurveMember", "IfcStructuralMember", ClassType.Concrete, new[] { "CABLE", "COMPRESSION_MEMBER", "PIN_JOINED_MEMBER", "RIGID_JOINED_MEMBER", "TENSION_MEMBER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Axis" }),
			new ClassInfo("IfcStructuralMember", "IfcStructuralItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcStructuralCurveMemberVarying", "IfcStructuralCurveMember", ClassType.Concrete, new[] { "CABLE", "COMPRESSION_MEMBER", "PIN_JOINED_MEMBER", "RIGID_JOINED_MEMBER", "TENSION_MEMBER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Axis" }),
			new ClassInfo("IfcStructuralCurveReaction", "IfcStructuralReaction", ClassType.Concrete, new[] { "CONST", "DISCRETE", "EQUIDISTANT", "LINEAR", "PARABOLA", "POLYGONAL", "SINUS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "PredefinedType" }),
			new ClassInfo("IfcStructuralReaction", "IfcStructuralActivity", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal" }),
			new ClassInfo("IfcStructuralLinearAction", "IfcStructuralCurveAction", ClassType.Concrete, new[] { "CONST", "DISCRETE", "EQUIDISTANT", "LINEAR", "PARABOLA", "POLYGONAL", "SINUS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType" }),
			new ClassInfo("IfcStructuralLoadCase", "IfcStructuralLoadGroup", ClassType.Concrete, new[] { "LOAD_CASE", "LOAD_COMBINATION", "LOAD_GROUP", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "ActionType", "ActionSource", "Coefficient", "Purpose", "SelfWeightCoefficients" }),
			new ClassInfo("IfcStructuralLoadGroup", "IfcGroup", ClassType.Concrete, new[] { "LOAD_CASE", "LOAD_COMBINATION", "LOAD_GROUP", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "ActionType", "ActionSource", "Coefficient", "Purpose" }),
			new ClassInfo("IfcStructuralPlanarAction", "IfcStructuralSurfaceAction", ClassType.Concrete, new[] { "BILINEAR", "CONST", "DISCRETE", "ISOCONTOUR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType" }),
			new ClassInfo("IfcStructuralSurfaceAction", "IfcStructuralAction", ClassType.Concrete, new[] { "BILINEAR", "CONST", "DISCRETE", "ISOCONTOUR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad", "ProjectedOrTrue", "PredefinedType" }),
			new ClassInfo("IfcStructuralPointAction", "IfcStructuralAction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "DestabilizingLoad" }),
			new ClassInfo("IfcStructuralPointConnection", "IfcStructuralConnection", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition", "ConditionCoordinateSystem" }),
			new ClassInfo("IfcStructuralPointReaction", "IfcStructuralReaction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal" }),
			new ClassInfo("IfcStructuralResultGroup", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheoryType", "ResultForLoadGroup", "IsLinear" }),
			new ClassInfo("IfcStructuralSurfaceConnection", "IfcStructuralConnection", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedCondition" }),
			new ClassInfo("IfcStructuralSurfaceMember", "IfcStructuralMember", ClassType.Concrete, new[] { "BENDING_ELEMENT", "MEMBRANE_ELEMENT", "SHELL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Thickness" }),
			new ClassInfo("IfcStructuralSurfaceMemberVarying", "IfcStructuralSurfaceMember", ClassType.Concrete, new[] { "BENDING_ELEMENT", "MEMBRANE_ELEMENT", "SHELL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType", "Thickness" }),
			new ClassInfo("IfcStructuralSurfaceReaction", "IfcStructuralReaction", ClassType.Concrete, new[] { "BILINEAR", "CONST", "DISCRETE", "ISOCONTOUR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralAnalysisDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "AppliedLoad", "GlobalOrLocal", "PredefinedType" }),
			new ClassInfo("IfcPhysicalComplexQuantity", "IfcPhysicalQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.QuantityResource", new[] { "Name", "Description", "HasQuantities", "Discrimination", "Quality", "Usage" }),
			new ClassInfo("IfcPhysicalQuantity", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.QuantityResource", new[] { "Name", "Description" }),
			new ClassInfo("IfcPhysicalSimpleQuantity", "IfcPhysicalQuantity", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.QuantityResource", new[] { "Name", "Description", "Unit" }),
			new ClassInfo("IfcQuantityArea", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.QuantityResource", new[] { "Name", "Description", "Unit", "AreaValue", "Formula" }),
			new ClassInfo("IfcQuantityCount", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.QuantityResource", new[] { "Name", "Description", "Unit", "CountValue", "Formula" }),
			new ClassInfo("IfcQuantityLength", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.QuantityResource", new[] { "Name", "Description", "Unit", "LengthValue", "Formula" }),
			new ClassInfo("IfcQuantityTime", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.QuantityResource", new[] { "Name", "Description", "Unit", "TimeValue", "Formula" }),
			new ClassInfo("IfcQuantityVolume", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.QuantityResource", new[] { "Name", "Description", "Unit", "VolumeValue", "Formula" }),
			new ClassInfo("IfcQuantityWeight", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.QuantityResource", new[] { "Name", "Description", "Unit", "WeightValue", "Formula" }),
			new ClassInfo("IfcQuantityNumber", "IfcPhysicalSimpleQuantity", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.QuantityResource", new[] { "Name", "Description", "Unit", "NumberValue", "Formula" }),
			new ClassInfo("IfcMaterial", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "Name", "Description", "Category" }),
			new ClassInfo("IfcMaterialDefinition", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "" }),
			new ClassInfo("IfcMaterialClassificationRelationship", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "MaterialClassifications", "ClassifiedMaterial" }),
			new ClassInfo("IfcMaterialConstituent", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "Name", "Description", "Material", "Fraction", "Category" }),
			new ClassInfo("IfcMaterialConstituentSet", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "Name", "Description", "MaterialConstituents" }),
			new ClassInfo("IfcMaterialLayer", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "Material", "LayerThickness", "IsVentilated", "Name", "Description", "Category", "Priority" }),
			new ClassInfo("IfcMaterialLayerSet", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "MaterialLayers", "LayerSetName", "Description" }),
			new ClassInfo("IfcMaterialLayerSetUsage", "IfcMaterialUsageDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "ForLayerSet", "LayerSetDirection", "DirectionSense", "OffsetFromReferenceLine", "ReferenceExtent" }),
			new ClassInfo("IfcMaterialUsageDefinition", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "" }),
			new ClassInfo("IfcMaterialLayerWithOffsets", "IfcMaterialLayer", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "Material", "LayerThickness", "IsVentilated", "Name", "Description", "Category", "Priority", "OffsetDirection", "OffsetValues" }),
			new ClassInfo("IfcMaterialList", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "Materials" }),
			new ClassInfo("IfcMaterialProfile", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "Name", "Description", "Material", "Profile", "Priority", "Category" }),
			new ClassInfo("IfcMaterialProfileSet", "IfcMaterialDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "Name", "Description", "MaterialProfiles", "CompositeProfile" }),
			new ClassInfo("IfcMaterialProfileSetUsage", "IfcMaterialUsageDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "ForProfileSet", "CardinalPoint", "ReferenceExtent" }),
			new ClassInfo("IfcMaterialProfileSetUsageTapering", "IfcMaterialProfileSetUsage", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "ForProfileSet", "CardinalPoint", "ReferenceExtent", "ForProfileEndSet", "CardinalEndPoint" }),
			new ClassInfo("IfcMaterialProfileWithOffsets", "IfcMaterialProfile", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "Name", "Description", "Material", "Profile", "Priority", "Category", "OffsetValues" }),
			new ClassInfo("IfcMaterialProperties", "IfcExtendedProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "Name", "Description", "Properties", "Material" }),
			new ClassInfo("IfcExtendedProperties", "IfcPropertyAbstraction", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "Description", "Properties" }),
			new ClassInfo("IfcPropertyAbstraction", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "" }),
			new ClassInfo("IfcMaterialRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "Name", "Description", "RelatingMaterial", "RelatedMaterials", "MaterialExpression" }),
			new ClassInfo("IfcResourceLevelRelationship", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "Name", "Description" }),
			new ClassInfo("IfcCardinalPointReference", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MaterialResource", new[] { "" }),
			new ClassInfo("IfcLightDistributionData", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationOrganizationResource", new[] { "MainPlaneAngle", "SecondaryPlaneAngle", "LuminousIntensity" }),
			new ClassInfo("IfcLightIntensityDistribution", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationOrganizationResource", new[] { "LightDistributionCurve", "DistributionData" }),
			new ClassInfo("IfcLightSource", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity" }),
			new ClassInfo("IfcGeometricRepresentationItem", "IfcRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcRepresentationItem", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcLightSourceAmbient", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity" }),
			new ClassInfo("IfcLightSourceDirectional", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Orientation" }),
			new ClassInfo("IfcLightSourceGoniometric", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "ColourAppearance", "ColourTemperature", "LuminousFlux", "LightEmissionSource", "LightDistributionDataSource" }),
			new ClassInfo("IfcLightSourcePositional", "IfcLightSource", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "Radius", "ConstantAttenuation", "DistanceAttenuation", "QuadricAttenuation" }),
			new ClassInfo("IfcLightSourceSpot", "IfcLightSourcePositional", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationOrganizationResource", new[] { "Name", "LightColour", "AmbientIntensity", "Intensity", "Position", "Radius", "ConstantAttenuation", "DistanceAttenuation", "QuadricAttenuation", "Orientation", "ConcentrationExponent", "SpreadAngle", "BeamWidthAngle" }),
			new ClassInfo("IfcPresentationLayerAssignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationOrganizationResource", new[] { "Name", "Description", "AssignedItems", "Identifier" }),
			new ClassInfo("IfcPresentationLayerWithStyle", "IfcPresentationLayerAssignment", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationOrganizationResource", new[] { "Name", "Description", "AssignedItems", "Identifier", "LayerOn", "LayerFrozen", "LayerBlocked", "LayerStyles" }),
			new ClassInfo("IfcFooting", "IfcBuiltElement", ClassType.Concrete, new[] { "CAISSON_FOUNDATION", "FOOTING_BEAM", "PAD_FOOTING", "PILE_CAP", "STRIP_FOOTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFootingType", "IfcBuiltElementType", ClassType.Concrete, new[] { "CAISSON_FOUNDATION", "FOOTING_BEAM", "PAD_FOOTING", "PILE_CAP", "STRIP_FOOTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPile", "IfcDeepFoundation", ClassType.Concrete, new[] { "BORED", "COHESION", "DRIVEN", "FRICTION", "JETGROUTING", "SUPPORT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType", "ConstructionType" }),
			new ClassInfo("IfcDeepFoundation", "IfcBuiltElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcPileType", "IfcDeepFoundationType", ClassType.Concrete, new[] { "BORED", "COHESION", "DRIVEN", "FRICTION", "JETGROUTING", "SUPPORT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDeepFoundationType", "IfcBuiltElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcReinforcementDefinitionProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "DefinitionType", "ReinforcementSectionDefinitions" }),
			new ClassInfo("IfcPreDefinedPropertySet", "IfcPropertySetDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcPropertySetDefinition", "IfcPropertyDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcPropertyDefinition", "IfcRoot", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcReinforcingBar", "IfcReinforcingElement", ClassType.Concrete, new[] { "ANCHORING", "EDGE", "LIGATURE", "MAIN", "PUNCHING", "RING", "SHEAR", "SPACEBAR", "STUD", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "NominalDiameter", "CrossSectionArea", "BarLength", "PredefinedType", "BarSurface" }),
			new ClassInfo("IfcReinforcingElement", "IfcElementComponent", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade" }),
			new ClassInfo("IfcReinforcingBarType", "IfcReinforcingElementType", ClassType.Concrete, new[] { "ANCHORING", "EDGE", "LIGATURE", "MAIN", "PUNCHING", "RING", "SHEAR", "SPACEBAR", "STUD", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "NominalDiameter", "CrossSectionArea", "BarLength", "BarSurface", "BendingShapeCode", "BendingParameters" }),
			new ClassInfo("IfcReinforcingElementType", "IfcElementComponentType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcReinforcingMesh", "IfcReinforcingElement", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "MeshLength", "MeshWidth", "LongitudinalBarNominalDiameter", "TransverseBarNominalDiameter", "LongitudinalBarCrossSectionArea", "TransverseBarCrossSectionArea", "LongitudinalBarSpacing", "TransverseBarSpacing", "PredefinedType" }),
			new ClassInfo("IfcReinforcingMeshType", "IfcReinforcingElementType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "MeshLength", "MeshWidth", "LongitudinalBarNominalDiameter", "TransverseBarNominalDiameter", "LongitudinalBarCrossSectionArea", "TransverseBarCrossSectionArea", "LongitudinalBarSpacing", "TransverseBarSpacing", "BendingShapeCode", "BendingParameters" }),
			new ClassInfo("IfcSurfaceFeature", "IfcFeatureElement", ClassType.Concrete, new[] { "DEFECT", "HATCHMARKING", "LINEMARKING", "MARK", "NONSKIDSURFACING", "PAVEMENTSURFACEMARKING", "RUMBLESTRIP", "SYMBOLMARKING", "TAG", "TRANSVERSERUMBLESTRIP", "TREATMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcTendon", "IfcReinforcingElement", ClassType.Concrete, new[] { "BAR", "COATED", "STRAND", "WIRE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "PredefinedType", "NominalDiameter", "CrossSectionArea", "TensionForce", "PreStress", "FrictionCoefficient", "AnchorageSlip", "MinCurvatureRadius" }),
			new ClassInfo("IfcTendonAnchor", "IfcReinforcingElement", ClassType.Concrete, new[] { "COUPLER", "FIXED_END", "TENSIONING_END", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "PredefinedType" }),
			new ClassInfo("IfcTendonAnchorType", "IfcReinforcingElementType", ClassType.Concrete, new[] { "COUPLER", "FIXED_END", "TENSIONING_END", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTendonType", "IfcReinforcingElementType", ClassType.Concrete, new[] { "BAR", "COATED", "STRAND", "WIRE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "NominalDiameter", "CrossSectionArea", "SheathDiameter" }),
			new ClassInfo("IfcVoidingFeature", "IfcFeatureElementSubtraction", ClassType.Concrete, new[] { "CHAMFER", "CUTOUT", "EDGE", "HOLE", "MITER", "NOTCH", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCaissonFoundation", "IfcDeepFoundation", ClassType.Concrete, new[] { "CAISSON", "WELL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCaissonFoundationType", "IfcDeepFoundationType", ClassType.Concrete, new[] { "CAISSON", "WELL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTendonConduit", "IfcReinforcingElement", ClassType.Concrete, new[] { "COUPLER", "DIABOLO", "DUCT", "GROUTING_DUCT", "TRUMPET", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "SteelGrade", "PredefinedType" }),
			new ClassInfo("IfcTendonConduitType", "IfcReinforcingElementType", ClassType.Concrete, new[] { "COUPLER", "DIABOLO", "DUCT", "GROUTING_DUCT", "TRUMPET", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.StructuralElementsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFireSuppressionTerminal", "IfcFlowTerminal", ClassType.Concrete, new[] { "BREECHINGINLET", "FIREHYDRANT", "FIREMONITOR", "HOSEREEL", "SPRINKLER", "SPRINKLERDEFLECTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFireSuppressionTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "BREECHINGINLET", "FIREHYDRANT", "FIREMONITOR", "HOSEREEL", "SPRINKLER", "SPRINKLERDEFLECTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcInterceptor", "IfcFlowTreatmentDevice", ClassType.Concrete, new[] { "CYCLONIC", "GREASE", "OIL", "PETROL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFlowTreatmentDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcInterceptorType", "IfcFlowTreatmentDeviceType", ClassType.Concrete, new[] { "CYCLONIC", "GREASE", "OIL", "PETROL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFlowTreatmentDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcSanitaryTerminal", "IfcFlowTerminal", ClassType.Concrete, new[] { "BATH", "BIDET", "CISTERN", "SANITARYFOUNTAIN", "SHOWER", "SINK", "TOILETPAN", "URINAL", "WASHHANDBASIN", "WCSEAT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSanitaryTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "BATH", "BIDET", "CISTERN", "SANITARYFOUNTAIN", "SHOWER", "SINK", "TOILETPAN", "URINAL", "WASHHANDBASIN", "WCSEAT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcStackTerminal", "IfcFlowTerminal", ClassType.Concrete, new[] { "BIRDCAGE", "COWL", "RAINWATERHOPPER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcStackTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "BIRDCAGE", "COWL", "RAINWATERHOPPER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcWasteTerminal", "IfcFlowTerminal", ClassType.Concrete, new[] { "FLOORTRAP", "FLOORWASTE", "GULLYSUMP", "GULLYTRAP", "ROOFDRAIN", "WASTEDISPOSALUNIT", "WASTETRAP", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcWasteTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "FLOORTRAP", "FLOORWASTE", "GULLYSUMP", "GULLYTRAP", "ROOFDRAIN", "WASTEDISPOSALUNIT", "WASTETRAP", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.PlumbingFireProtectionDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcEvent", "IfcProcess", ClassType.Concrete, new[] { "ENDEVENT", "INTERMEDIATEEVENT", "STARTEVENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "PredefinedType", "EventTriggerType", "UserDefinedEventTriggerType", "EventOccurenceTime" }),
			new ClassInfo("IfcProcess", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription" }),
			new ClassInfo("IfcEventType", "IfcTypeProcess", ClassType.Concrete, new[] { "ENDEVENT", "INTERMEDIATEEVENT", "STARTEVENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType", "PredefinedType", "EventTriggerType", "UserDefinedEventTriggerType" }),
			new ClassInfo("IfcTypeProcess", "IfcTypeObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType" }),
			new ClassInfo("IfcProcedure", "IfcProcess", ClassType.Concrete, new[] { "ADVICE_CAUTION", "ADVICE_NOTE", "ADVICE_WARNING", "CALIBRATION", "DIAGNOSTIC", "SHUTDOWN", "STARTUP", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "PredefinedType" }),
			new ClassInfo("IfcProcedureType", "IfcTypeProcess", ClassType.Concrete, new[] { "ADVICE_CAUTION", "ADVICE_NOTE", "ADVICE_WARNING", "CALIBRATION", "DIAGNOSTIC", "SHUTDOWN", "STARTUP", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType", "PredefinedType" }),
			new ClassInfo("IfcRelSequence", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingProcess", "RelatedProcess", "TimeLag", "SequenceType", "UserDefinedSequenceType" }),
			new ClassInfo("IfcTask", "IfcProcess", ClassType.Concrete, new[] { "ADJUSTMENT", "ATTENDANCE", "CALIBRATION", "CONSTRUCTION", "DEMOLITION", "DISMANTLE", "DISPOSAL", "EMERGENCY", "INSPECTION", "INSTALLATION", "LOGISTIC", "MAINTENANCE", "MOVE", "OPERATION", "REMOVAL", "RENOVATION", "SAFETY", "SHUTDOWN", "STARTUP", "TESTING", "TROUBLESHOOTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Status", "WorkMethod", "IsMilestone", "Priority", "TaskTime", "PredefinedType" }),
			new ClassInfo("IfcTaskType", "IfcTypeProcess", ClassType.Concrete, new[] { "ADJUSTMENT", "ATTENDANCE", "CALIBRATION", "CONSTRUCTION", "DEMOLITION", "DISMANTLE", "DISPOSAL", "EMERGENCY", "INSPECTION", "INSTALLATION", "LOGISTIC", "MAINTENANCE", "MOVE", "OPERATION", "REMOVAL", "RENOVATION", "SAFETY", "SHUTDOWN", "STARTUP", "TESTING", "TROUBLESHOOTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ProcessType", "PredefinedType", "WorkMethod" }),
			new ClassInfo("IfcWorkCalendar", "IfcControl", ClassType.Concrete, new[] { "FIRSTSHIFT", "SECONDSHIFT", "THIRDSHIFT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "WorkingTimes", "ExceptionTimes", "PredefinedType" }),
			new ClassInfo("IfcControl", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification" }),
			new ClassInfo("IfcWorkControl", "IfcControl", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime" }),
			new ClassInfo("IfcWorkPlan", "IfcWorkControl", ClassType.Concrete, new[] { "ACTUAL", "BASELINE", "PLANNED", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime", "PredefinedType" }),
			new ClassInfo("IfcWorkSchedule", "IfcWorkControl", ClassType.Concrete, new[] { "ACTUAL", "BASELINE", "PLANNED", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProcessExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "CreationDate", "Creators", "Purpose", "Duration", "TotalFloat", "StartTime", "FinishTime", "PredefinedType" }),
			new ClassInfo("IfcDistributionChamberElement", "IfcDistributionFlowElement", ClassType.Concrete, new[] { "FORMEDDUCT", "INSPECTIONCHAMBER", "INSPECTIONPIT", "MANHOLE", "METERCHAMBER", "SUMP", "TRENCH", "VALVECHAMBER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDistributionChamberElementType", "IfcDistributionFlowElementType", ClassType.Concrete, new[] { "FORMEDDUCT", "INSPECTIONCHAMBER", "INSPECTIONPIT", "MANHOLE", "METERCHAMBER", "SUMP", "TRENCH", "VALVECHAMBER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDistributionCircuit", "IfcDistributionSystem", ClassType.Concrete, new[] { "AIRCONDITIONING", "AUDIOVISUAL", "CATENARY_SYSTEM", "CHEMICAL", "CHILLEDWATER", "COMMUNICATION", "COMPRESSEDAIR", "CONDENSERWATER", "CONTROL", "CONVEYING", "DATA", "DISPOSAL", "DOMESTICCOLDWATER", "DOMESTICHOTWATER", "DRAINAGE", "EARTHING", "ELECTRICAL", "ELECTROACOUSTIC", "EXHAUST", "FIREPROTECTION", "FIXEDTRANSMISSIONNETWORK", "FUEL", "GAS", "HAZARDOUS", "HEATING", "LIGHTING", "LIGHTNINGPROTECTION", "MOBILENETWORK", "MONITORINGSYSTEM", "MUNICIPALSOLIDWASTE", "OIL", "OPERATIONAL", "OPERATIONALTELEPHONYSYSTEM", "OVERHEAD_CONTACTLINE_SYSTEM", "POWERGENERATION", "RAINWATER", "REFRIGERATION", "RETURN_CIRCUIT", "SECURITY", "SEWAGE", "SIGNAL", "STORMWATER", "TELEPHONE", "TV", "VACUUM", "VENT", "VENTILATION", "WASTEWATER", "WATERSUPPLY", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "PredefinedType" }),
			new ClassInfo("IfcDistributionSystem", "IfcSystem", ClassType.Concrete, new[] { "AIRCONDITIONING", "AUDIOVISUAL", "CATENARY_SYSTEM", "CHEMICAL", "CHILLEDWATER", "COMMUNICATION", "COMPRESSEDAIR", "CONDENSERWATER", "CONTROL", "CONVEYING", "DATA", "DISPOSAL", "DOMESTICCOLDWATER", "DOMESTICHOTWATER", "DRAINAGE", "EARTHING", "ELECTRICAL", "ELECTROACOUSTIC", "EXHAUST", "FIREPROTECTION", "FIXEDTRANSMISSIONNETWORK", "FUEL", "GAS", "HAZARDOUS", "HEATING", "LIGHTING", "LIGHTNINGPROTECTION", "MOBILENETWORK", "MONITORINGSYSTEM", "MUNICIPALSOLIDWASTE", "OIL", "OPERATIONAL", "OPERATIONALTELEPHONYSYSTEM", "OVERHEAD_CONTACTLINE_SYSTEM", "POWERGENERATION", "RAINWATER", "REFRIGERATION", "RETURN_CIRCUIT", "SECURITY", "SEWAGE", "SIGNAL", "STORMWATER", "TELEPHONE", "TV", "VACUUM", "VENT", "VENTILATION", "WASTEWATER", "WATERSUPPLY", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "PredefinedType" }),
			new ClassInfo("IfcDistributionControlElement", "IfcDistributionElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcDistributionControlElementType", "IfcDistributionElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcDistributionPort", "IfcPort", ClassType.Concrete, new[] { "CABLE", "CABLECARRIER", "DUCT", "PIPE", "WIRELESS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "FlowDirection", "PredefinedType", "SystemType" }),
			new ClassInfo("IfcPort", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcEnergyConversionDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcEnergyConversionDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowController", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowControllerType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowFitting", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowFittingType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowMovingDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowMovingDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcFlowStorageDevice", "IfcDistributionFlowElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFlowStorageDeviceType", "IfcDistributionFlowElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcRelFlowControlElements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgServiceElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedControlElements", "RelatingFlowElement" }),
			new ClassInfo("IfcCoordinateOperation", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "SourceCRS", "TargetCRS" }),
			new ClassInfo("IfcCoordinateReferenceSystem", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "Name", "Description", "GeodeticDatum" }),
			new ClassInfo("IfcGeometricRepresentationContext", "IfcRepresentationContext", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "ContextIdentifier", "ContextType", "CoordinateSpaceDimension", "Precision", "WorldCoordinateSystem", "TrueNorth" }),
			new ClassInfo("IfcRepresentationContext", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "ContextIdentifier", "ContextType" }),
			new ClassInfo("IfcGeometricRepresentationSubContext", "IfcGeometricRepresentationContext", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "ContextIdentifier", "ContextType", "CoordinateSpaceDimension", "Precision", "WorldCoordinateSystem", "TrueNorth", "ParentContext", "TargetScale", "TargetView", "UserDefinedTargetView" }),
			new ClassInfo("IfcMapConversion", "IfcCoordinateOperation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "SourceCRS", "TargetCRS", "Eastings", "Northings", "OrthogonalHeight", "XAxisAbscissa", "XAxisOrdinate", "Scale" }),
			new ClassInfo("IfcMaterialDefinitionRepresentation", "IfcProductRepresentation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "Name", "Description", "Representations", "RepresentedMaterial" }),
			new ClassInfo("IfcProductRepresentation", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "Name", "Description", "Representations" }),
			new ClassInfo("IfcProductDefinitionShape", "IfcProductRepresentation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "Name", "Description", "Representations" }),
			new ClassInfo("IfcProjectedCRS", "IfcCoordinateReferenceSystem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "Name", "Description", "GeodeticDatum", "VerticalDatum", "MapProjection", "MapZone", "MapUnit" }),
			new ClassInfo("IfcRepresentation", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcShapeAspect", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "ShapeRepresentations", "Name", "Description", "ProductDefinitional", "PartOfProductDefinitionShape" }),
			new ClassInfo("IfcShapeModel", "IfcRepresentation", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcShapeRepresentation", "IfcShapeModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcStyledRepresentation", "IfcStyleModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcStyleModel", "IfcRepresentation", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcTopologyRepresentation", "IfcShapeModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "ContextOfItems", "RepresentationIdentifier", "RepresentationType", "Items" }),
			new ClassInfo("IfcGeographicCRS", "IfcCoordinateReferenceSystem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "Name", "Description", "GeodeticDatum", "PrimeMeridian", "AngleUnit", "HeightUnit" }),
			new ClassInfo("IfcMapConversionScaled", "IfcMapConversion", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "SourceCRS", "TargetCRS", "Eastings", "Northings", "OrthogonalHeight", "XAxisAbscissa", "XAxisOrdinate", "Scale", "FactorX", "FactorY", "FactorZ" }),
			new ClassInfo("IfcRigidOperation", "IfcCoordinateOperation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "SourceCRS", "TargetCRS", "FirstCoordinate", "SecondCoordinate", "Height" }),
			new ClassInfo("IfcWellKnownText", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "WellKnownText", "CoordinateReferenceSystem" }),
			new ClassInfo("IfcWellKnownTextLiteral", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.RepresentationResource", new[] { "" }),
			new ClassInfo("IfcContextDependentUnit", "IfcNamedUnit", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "Dimensions", "UnitType", "Name" }),
			new ClassInfo("IfcNamedUnit", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "Dimensions", "UnitType" }),
			new ClassInfo("IfcConversionBasedUnit", "IfcNamedUnit", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "Dimensions", "UnitType", "Name", "ConversionFactor" }),
			new ClassInfo("IfcConversionBasedUnitWithOffset", "IfcConversionBasedUnit", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "Dimensions", "UnitType", "Name", "ConversionFactor", "ConversionOffset" }),
			new ClassInfo("IfcDerivedUnit", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "Elements", "UnitType", "UserDefinedType", "Name" }),
			new ClassInfo("IfcDerivedUnitElement", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "Unit", "Exponent" }),
			new ClassInfo("IfcDimensionalExponents", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "LengthExponent", "MassExponent", "TimeExponent", "ElectricCurrentExponent", "ThermodynamicTemperatureExponent", "AmountOfSubstanceExponent", "LuminousIntensityExponent" }),
			new ClassInfo("IfcMeasureWithUnit", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "ValueComponent", "UnitComponent" }),
			new ClassInfo("IfcMonetaryUnit", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "Currency" }),
			new ClassInfo("IfcSIUnit", "IfcNamedUnit", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "Dimensions", "UnitType", "Prefix", "Name" }),
			new ClassInfo("IfcUnitAssignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "Units" }),
			new ClassInfo("IfcLengthMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcNonNegativeLengthMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPositiveLengthMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAbsorbedDoseMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAccelerationMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAmountOfSubstanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAngularVelocityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAreaDensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcAreaMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcBinary", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcBoolean", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcComplexNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcCompoundPlaneAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcContextDependentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcCountMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcCurvatureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcDescriptiveMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcDoseEquivalentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcDynamicViscosityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricCapacitanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricChargeMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricConductanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricCurrentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricResistanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcElectricVoltageMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcEnergyMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcForceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcFrequencyMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcHeatFluxDensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcHeatingValueMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIdentifier", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIlluminanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcInductanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcInteger", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIntegerCountRateMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIonConcentrationMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcIsothermalMoistureCapacityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcKinematicViscosityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLabel", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearForceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearMomentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearStiffnessMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLinearVelocityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLogical", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLuminousFluxMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLuminousIntensityDistributionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcLuminousIntensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMagneticFluxDensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMagneticFluxMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassDensityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassFlowRateMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMassPerLengthMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcModulusOfElasticityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcModulusOfLinearSubgradeReactionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcModulusOfRotationalSubgradeReactionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcModulusOfSubgradeReactionMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMoistureDiffusivityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMolecularWeightMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMomentOfInertiaMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcMonetaryMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcNormalisedRatioMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcNumericMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcParameterValue", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPHMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPlanarForceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPlaneAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPositiveInteger", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPositivePlaneAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPositiveRatioMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPowerMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcPressureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRadioActivityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRatioMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcReal", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRotationalFrequencyMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRotationalMassMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcRotationalStiffnessMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSectionalAreaIntegralMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSectionModulusMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcShearModulusMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSolidAngleMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSoundPowerLevelMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSoundPowerMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSoundPressureLevelMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSoundPressureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcSpecificHeatCapacityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTemperatureGradientMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTemperatureRateOfChangeMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcText", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalAdmittanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalConductivityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalExpansionCoefficientMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalResistanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermalTransmittanceMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcThermodynamicTemperatureMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTimeMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcTorqueMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcURIReference", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcVaporPermeabilityMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcVolumeMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcVolumetricFlowRateMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcWarpingConstantMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcWarpingMomentMeasure", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.MeasureResource", new[] { "" }),
			new ClassInfo("IfcComplexProperty", "IfcProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "Specification", "UsageName", "HasProperties" }),
			new ClassInfo("IfcProperty", "IfcPropertyAbstraction", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "Specification" }),
			new ClassInfo("IfcPreDefinedProperties", "IfcPropertyAbstraction", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "" }),
			new ClassInfo("IfcPropertyBoundedValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "Specification", "UpperBoundValue", "LowerBoundValue", "Unit", "SetPointValue" }),
			new ClassInfo("IfcSimpleProperty", "IfcProperty", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "Specification" }),
			new ClassInfo("IfcPropertyDependencyRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "Description", "DependingProperty", "DependantProperty", "Expression" }),
			new ClassInfo("IfcPropertyEnumeratedValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "Specification", "EnumerationValues", "EnumerationReference" }),
			new ClassInfo("IfcPropertyEnumeration", "IfcPropertyAbstraction", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "EnumerationValues", "Unit" }),
			new ClassInfo("IfcPropertyListValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "Specification", "ListValues", "Unit" }),
			new ClassInfo("IfcPropertyReferenceValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "Specification", "UsageName", "PropertyReference" }),
			new ClassInfo("IfcPropertySingleValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "Specification", "NominalValue", "Unit" }),
			new ClassInfo("IfcPropertyTableValue", "IfcSimpleProperty", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PropertyResource", new[] { "Name", "Specification", "DefiningValues", "DefinedValues", "Expression", "DefiningUnit", "DefinedUnit", "CurveInterpolation" }),
			new ClassInfo("IfcBuildingElementPart", "IfcElementComponent", ClassType.Concrete, new[] { "APRON", "ARMOURUNIT", "INSULATION", "PRECASTPANEL", "SAFETYCAGE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBuildingElementPartType", "IfcElementComponentType", ClassType.Concrete, new[] { "APRON", "ARMOURUNIT", "INSULATION", "PRECASTPANEL", "SAFETYCAGE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDiscreteAccessory", "IfcElementComponent", ClassType.Concrete, new[] { "ANCHORPLATE", "BIRDPROTECTION", "BRACKET", "CABLEARRANGER", "ELASTIC_CUSHION", "EXPANSION_JOINT_DEVICE", "FILLER", "FLASHING", "INSULATOR", "LOCK", "PANEL_STRENGTHENING", "POINTMACHINEMOUNTINGDEVICE", "POINT_MACHINE_LOCKING_DEVICE", "RAILBRACE", "RAILPAD", "RAIL_LUBRICATION", "RAIL_MECHANICAL_EQUIPMENT", "SHOE", "SLIDINGCHAIR", "SOUNDABSORPTION", "TENSIONINGEQUIPMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDiscreteAccessoryType", "IfcElementComponentType", ClassType.Concrete, new[] { "ANCHORPLATE", "BIRDPROTECTION", "BRACKET", "CABLEARRANGER", "ELASTIC_CUSHION", "EXPANSION_JOINT_DEVICE", "FILLER", "FLASHING", "INSULATOR", "LOCK", "PANEL_STRENGTHENING", "POINTMACHINEMOUNTINGDEVICE", "POINT_MACHINE_LOCKING_DEVICE", "RAILBRACE", "RAILPAD", "RAIL_LUBRICATION", "RAIL_MECHANICAL_EQUIPMENT", "SHOE", "SLIDINGCHAIR", "SOUNDABSORPTION", "TENSIONINGEQUIPMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFastener", "IfcElementComponent", ClassType.Concrete, new[] { "GLUE", "MORTAR", "WELD", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFastenerType", "IfcElementComponentType", ClassType.Concrete, new[] { "GLUE", "MORTAR", "WELD", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcMechanicalFastener", "IfcElementComponent", ClassType.Concrete, new[] { "ANCHORBOLT", "BOLT", "CHAIN", "COUPLER", "DOWEL", "NAIL", "NAILPLATE", "RAILFASTENING", "RAILJOINT", "RIVET", "ROPE", "SCREW", "SHEARCONNECTOR", "STAPLE", "STUDSHEARCONNECTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "NominalDiameter", "NominalLength", "PredefinedType" }),
			new ClassInfo("IfcMechanicalFastenerType", "IfcElementComponentType", ClassType.Concrete, new[] { "ANCHORBOLT", "BOLT", "CHAIN", "COUPLER", "DOWEL", "NAIL", "NAILPLATE", "RAILFASTENING", "RAILJOINT", "RIVET", "ROPE", "SCREW", "SHEARCONNECTOR", "STAPLE", "STUDSHEARCONNECTOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedComponentElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "NominalDiameter", "NominalLength" }),
			new ClassInfo("IfcBoundaryCondition", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcBoundaryEdgeCondition", "IfcBoundaryCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "TranslationalStiffnessByLengthX", "TranslationalStiffnessByLengthY", "TranslationalStiffnessByLengthZ", "RotationalStiffnessByLengthX", "RotationalStiffnessByLengthY", "RotationalStiffnessByLengthZ" }),
			new ClassInfo("IfcBoundaryFaceCondition", "IfcBoundaryCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "TranslationalStiffnessByAreaX", "TranslationalStiffnessByAreaY", "TranslationalStiffnessByAreaZ" }),
			new ClassInfo("IfcBoundaryNodeCondition", "IfcBoundaryCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "TranslationalStiffnessX", "TranslationalStiffnessY", "TranslationalStiffnessZ", "RotationalStiffnessX", "RotationalStiffnessY", "RotationalStiffnessZ" }),
			new ClassInfo("IfcBoundaryNodeConditionWarping", "IfcBoundaryNodeCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "TranslationalStiffnessX", "TranslationalStiffnessY", "TranslationalStiffnessZ", "RotationalStiffnessX", "RotationalStiffnessY", "RotationalStiffnessZ", "WarpingStiffness" }),
			new ClassInfo("IfcFailureConnectionCondition", "IfcStructuralConnectionCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "TensionFailureX", "TensionFailureY", "TensionFailureZ", "CompressionFailureX", "CompressionFailureY", "CompressionFailureZ" }),
			new ClassInfo("IfcStructuralConnectionCondition", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcSlippageConnectionCondition", "IfcStructuralConnectionCondition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "SlippageX", "SlippageY", "SlippageZ" }),
			new ClassInfo("IfcStructuralLoad", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcStructuralLoadConfiguration", "IfcStructuralLoad", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "Values", "Locations" }),
			new ClassInfo("IfcStructuralLoadLinearForce", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "LinearForceX", "LinearForceY", "LinearForceZ", "LinearMomentX", "LinearMomentY", "LinearMomentZ" }),
			new ClassInfo("IfcStructuralLoadStatic", "IfcStructuralLoadOrResult", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcStructuralLoadOrResult", "IfcStructuralLoad", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name" }),
			new ClassInfo("IfcStructuralLoadPlanarForce", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "PlanarForceX", "PlanarForceY", "PlanarForceZ" }),
			new ClassInfo("IfcStructuralLoadSingleDisplacement", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "DisplacementX", "DisplacementY", "DisplacementZ", "RotationalDisplacementRX", "RotationalDisplacementRY", "RotationalDisplacementRZ" }),
			new ClassInfo("IfcStructuralLoadSingleDisplacementDistortion", "IfcStructuralLoadSingleDisplacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "DisplacementX", "DisplacementY", "DisplacementZ", "RotationalDisplacementRX", "RotationalDisplacementRY", "RotationalDisplacementRZ", "Distortion" }),
			new ClassInfo("IfcStructuralLoadSingleForce", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "ForceX", "ForceY", "ForceZ", "MomentX", "MomentY", "MomentZ" }),
			new ClassInfo("IfcStructuralLoadSingleForceWarping", "IfcStructuralLoadSingleForce", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "ForceX", "ForceY", "ForceZ", "MomentX", "MomentY", "MomentZ", "WarpingMoment" }),
			new ClassInfo("IfcStructuralLoadTemperature", "IfcStructuralLoadStatic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "DeltaTConstant", "DeltaTY", "DeltaTZ" }),
			new ClassInfo("IfcSurfaceReinforcementArea", "IfcStructuralLoadOrResult", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.StructuralLoadResource", new[] { "Name", "SurfaceReinforcement1", "SurfaceReinforcement2", "ShearReinforcement" }),
			new ClassInfo("IfcBlobTexture", "IfcSurfaceTexture", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter", "RasterFormat", "RasterCode" }),
			new ClassInfo("IfcSurfaceTexture", "IfcPresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter" }),
			new ClassInfo("IfcPresentationItem", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PresentationDefinitionResource", new[] { "" }),
			new ClassInfo("IfcColourRgb", "IfcColourSpecification", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name", "Red", "Green", "Blue" }),
			new ClassInfo("IfcColourSpecification", "IfcPresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcColourRgbList", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "ColourList" }),
			new ClassInfo("IfcCurveStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name", "CurveFont", "CurveWidth", "CurveColour", "ModelOrDraughting" }),
			new ClassInfo("IfcPresentationStyle", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcCurveStyleFont", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name", "PatternList" }),
			new ClassInfo("IfcCurveStyleFontAndScaling", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name", "CurveStyleFont", "CurveFontScaling" }),
			new ClassInfo("IfcCurveStyleFontPattern", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "VisibleSegmentLength", "InvisibleSegmentLength" }),
			new ClassInfo("IfcDraughtingPreDefinedColour", "IfcPreDefinedColour", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedColour", "IfcPreDefinedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedItem", "IfcPresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcDraughtingPreDefinedCurveFont", "IfcPreDefinedCurveFont", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcPreDefinedCurveFont", "IfcPreDefinedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcExternallyDefinedHatchStyle", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Location", "Identification", "Name" }),
			new ClassInfo("IfcExternalReference", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "Location", "Identification", "Name" }),
			new ClassInfo("IfcExternallyDefinedSurfaceStyle", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Location", "Identification", "Name" }),
			new ClassInfo("IfcExternallyDefinedTextFont", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Location", "Identification", "Name" }),
			new ClassInfo("IfcFillAreaStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name", "FillStyles", "ModelOrDraughting" }),
			new ClassInfo("IfcFillAreaStyleHatching", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "HatchLineAppearance", "StartOfNextHatchLine", "PointOfReferenceHatchLine", "PatternStart", "HatchLineAngle" }),
			new ClassInfo("IfcFillAreaStyleTiles", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "TilingPattern", "Tiles", "TilingScale" }),
			new ClassInfo("IfcImageTexture", "IfcSurfaceTexture", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter", "URLReference" }),
			new ClassInfo("IfcIndexedColourMap", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "MappedTo", "Opacity", "Colours", "ColourIndex" }),
			new ClassInfo("IfcIndexedTextureMap", "IfcTextureCoordinate", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Maps", "MappedTo", "TexCoords" }),
			new ClassInfo("IfcTextureCoordinate", "IfcPresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Maps" }),
			new ClassInfo("IfcIndexedTriangleTextureMap", "IfcIndexedTextureMap", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Maps", "MappedTo", "TexCoords", "TexCoordIndex" }),
			new ClassInfo("IfcPixelTexture", "IfcSurfaceTexture", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "RepeatS", "RepeatT", "Mode", "TextureTransform", "Parameter", "Width", "Height", "ColourComponents", "Pixel" }),
			new ClassInfo("IfcPreDefinedTextFont", "IfcPreDefinedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name" }),
			new ClassInfo("IfcStyledItem", "IfcRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Item", "Styles", "Name" }),
			new ClassInfo("IfcSurfaceStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name", "Side", "Styles" }),
			new ClassInfo("IfcSurfaceStyleLighting", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "DiffuseTransmissionColour", "DiffuseReflectionColour", "TransmissionColour", "ReflectanceColour" }),
			new ClassInfo("IfcSurfaceStyleRefraction", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "RefractionIndex", "DispersionFactor" }),
			new ClassInfo("IfcSurfaceStyleRendering", "IfcSurfaceStyleShading", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "SurfaceColour", "Transparency", "DiffuseColour", "TransmissionColour", "DiffuseTransmissionColour", "ReflectionColour", "SpecularColour", "SpecularHighlight", "ReflectanceMethod" }),
			new ClassInfo("IfcSurfaceStyleShading", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "SurfaceColour", "Transparency" }),
			new ClassInfo("IfcSurfaceStyleWithTextures", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Textures" }),
			new ClassInfo("IfcTextStyle", "IfcPresentationStyle", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name", "TextCharacterAppearance", "TextStyle", "TextFontStyle", "ModelOrDraughting" }),
			new ClassInfo("IfcTextStyleFontModel", "IfcPreDefinedTextFont", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Name", "FontFamily", "FontStyle", "FontVariant", "FontWeight", "FontSize" }),
			new ClassInfo("IfcTextStyleForDefinedFont", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Colour", "BackgroundColour" }),
			new ClassInfo("IfcTextStyleTextModel", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "TextIndent", "TextAlign", "TextDecoration", "LetterSpacing", "WordSpacing", "TextTransform", "LineHeight" }),
			new ClassInfo("IfcTextureCoordinateGenerator", "IfcTextureCoordinate", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Maps", "Mode", "Parameter" }),
			new ClassInfo("IfcTextureMap", "IfcTextureCoordinate", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Maps", "Vertices", "MappedTo" }),
			new ClassInfo("IfcTextureVertex", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Coordinates" }),
			new ClassInfo("IfcTextureVertexList", "IfcPresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "TexCoordsList" }),
			new ClassInfo("IfcFontStyle", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcFontVariant", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcFontWeight", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcIndexedPolygonalTextureMap", "IfcIndexedTextureMap", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "Maps", "MappedTo", "TexCoords", "TexCoordIndices" }),
			new ClassInfo("IfcPresentableText", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcSpecularExponent", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcSpecularRoughness", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTextAlignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTextDecoration", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTextFontName", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTextTransformation", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "" }),
			new ClassInfo("IfcTextureCoordinateIndices", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "TexCoordIndex", "TexCoordsOf" }),
			new ClassInfo("IfcTextureCoordinateIndicesWithVoids", "IfcTextureCoordinateIndices", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationAppearanceResource", new[] { "TexCoordIndex", "TexCoordsOf", "InnerTexCoordIndices" }),
			new ClassInfo("IfcBeam", "IfcBuiltElement", ClassType.Concrete, new[] { "BEAM", "CORNICE", "DIAPHRAGM", "EDGEBEAM", "GIRDER_SEGMENT", "HATSTONE", "HOLLOWCORE", "JOIST", "LINTEL", "PIERCAP", "SPANDREL", "T_BEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBeamType", "IfcBuiltElementType", ClassType.Concrete, new[] { "BEAM", "CORNICE", "DIAPHRAGM", "EDGEBEAM", "GIRDER_SEGMENT", "HATSTONE", "HOLLOWCORE", "JOIST", "LINTEL", "PIERCAP", "SPANDREL", "T_BEAM", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBuildingElementProxy", "IfcBuiltElement", ClassType.Concrete, new[] { "COMPLEX", "ELEMENT", "PARTIAL", "PROVISIONFORSPACE", "PROVISIONFORVOID", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBuildingElementProxyType", "IfcBuiltElementType", ClassType.Concrete, new[] { "COMPLEX", "ELEMENT", "PARTIAL", "PROVISIONFORSPACE", "PROVISIONFORVOID", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBuildingSystem", "IfcSystem", ClassType.Concrete, new[] { "FENESTRATION", "FOUNDATION", "LOADBEARING", "OUTERSHELL", "SHADING", "TRANSPORT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "LongName" }),
			new ClassInfo("IfcChimney", "IfcBuiltElement", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcChimneyType", "IfcBuiltElementType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcColumn", "IfcBuiltElement", ClassType.Concrete, new[] { "COLUMN", "PIERSTEM", "PIERSTEM_SEGMENT", "PILASTER", "STANDCOLUMN", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcColumnType", "IfcBuiltElementType", ClassType.Concrete, new[] { "COLUMN", "PIERSTEM", "PIERSTEM_SEGMENT", "PILASTER", "STANDCOLUMN", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCovering", "IfcBuiltElement", ClassType.Concrete, new[] { "CEILING", "CLADDING", "COPING", "FLOORING", "INSULATION", "MEMBRANE", "MOLDING", "ROOFING", "SKIRTINGBOARD", "SLEEVING", "TOPPING", "WRAPPING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCoveringType", "IfcBuiltElementType", ClassType.Concrete, new[] { "CEILING", "CLADDING", "COPING", "FLOORING", "INSULATION", "MEMBRANE", "MOLDING", "ROOFING", "SKIRTINGBOARD", "SLEEVING", "TOPPING", "WRAPPING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCurtainWall", "IfcBuiltElement", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCurtainWallType", "IfcBuiltElementType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDoor", "IfcBuiltElement", ClassType.Concrete, new[] { "BOOM_BARRIER", "DOOR", "GATE", "TRAPDOOR", "TURNSTILE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth", "PredefinedType", "OperationType", "UserDefinedOperationType" }),
			new ClassInfo("IfcDoorType", "IfcBuiltElementType", ClassType.Concrete, new[] { "BOOM_BARRIER", "DOOR", "GATE", "TRAPDOOR", "TURNSTILE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "OperationType", "ParameterTakesPrecedence", "UserDefinedOperationType" }),
			new ClassInfo("IfcMember", "IfcBuiltElement", ClassType.Concrete, new[] { "ARCH_SEGMENT", "BRACE", "CHORD", "COLLAR", "MEMBER", "MULLION", "PLATE", "POST", "PURLIN", "RAFTER", "STAY_CABLE", "STIFFENING_RIB", "STRINGER", "STRUCTURALCABLE", "STRUT", "STUD", "SUSPENDER", "SUSPENSION_CABLE", "TIEBAR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcMemberType", "IfcBuiltElementType", ClassType.Concrete, new[] { "ARCH_SEGMENT", "BRACE", "CHORD", "COLLAR", "MEMBER", "MULLION", "PLATE", "POST", "PURLIN", "RAFTER", "STAY_CABLE", "STIFFENING_RIB", "STRINGER", "STRUCTURALCABLE", "STRUT", "STUD", "SUSPENDER", "SUSPENSION_CABLE", "TIEBAR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPlate", "IfcBuiltElement", ClassType.Concrete, new[] { "BASE_PLATE", "COVER_PLATE", "CURTAIN_PANEL", "FLANGE_PLATE", "GUSSET_PLATE", "SHEET", "SPLICE_PLATE", "STIFFENER_PLATE", "WEB_PLATE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPlateType", "IfcBuiltElementType", ClassType.Concrete, new[] { "BASE_PLATE", "COVER_PLATE", "CURTAIN_PANEL", "FLANGE_PLATE", "GUSSET_PLATE", "SHEET", "SPLICE_PLATE", "STIFFENER_PLATE", "WEB_PLATE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRailing", "IfcBuiltElement", ClassType.Concrete, new[] { "BALUSTRADE", "FENCE", "GUARDRAIL", "HANDRAIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcRailingType", "IfcBuiltElementType", ClassType.Concrete, new[] { "BALUSTRADE", "FENCE", "GUARDRAIL", "HANDRAIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRamp", "IfcBuiltElement", ClassType.Concrete, new[] { "HALF_TURN_RAMP", "QUARTER_TURN_RAMP", "SPIRAL_RAMP", "STRAIGHT_RUN_RAMP", "TWO_QUARTER_TURN_RAMP", "TWO_STRAIGHT_RUN_RAMP", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcRampFlight", "IfcBuiltElement", ClassType.Concrete, new[] { "SPIRAL", "STRAIGHT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcRampFlightType", "IfcBuiltElementType", ClassType.Concrete, new[] { "SPIRAL", "STRAIGHT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRampType", "IfcBuiltElementType", ClassType.Concrete, new[] { "HALF_TURN_RAMP", "QUARTER_TURN_RAMP", "SPIRAL_RAMP", "STRAIGHT_RUN_RAMP", "TWO_QUARTER_TURN_RAMP", "TWO_STRAIGHT_RUN_RAMP", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRelConnectsPathElements", "IfcRelConnectsElements", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement", "RelatingPriorities", "RelatedPriorities", "RelatedConnectionType", "RelatingConnectionType" }),
			new ClassInfo("IfcRelConnectsElements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement" }),
			new ClassInfo("IfcRelCoversBldgElements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingBuildingElement", "RelatedCoverings" }),
			new ClassInfo("IfcRelCoversSpaces", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedCoverings" }),
			new ClassInfo("IfcRoof", "IfcBuiltElement", ClassType.Concrete, new[] { "BARREL_ROOF", "BUTTERFLY_ROOF", "DOME_ROOF", "FLAT_ROOF", "FREEFORM", "GABLE_ROOF", "GAMBREL_ROOF", "HIPPED_GABLE_ROOF", "HIP_ROOF", "MANSARD_ROOF", "PAVILION_ROOF", "RAINBOW_ROOF", "SHED_ROOF", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcRoofType", "IfcBuiltElementType", ClassType.Concrete, new[] { "BARREL_ROOF", "BUTTERFLY_ROOF", "DOME_ROOF", "FLAT_ROOF", "FREEFORM", "GABLE_ROOF", "GAMBREL_ROOF", "HIPPED_GABLE_ROOF", "HIP_ROOF", "MANSARD_ROOF", "PAVILION_ROOF", "RAINBOW_ROOF", "SHED_ROOF", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcShadingDevice", "IfcBuiltElement", ClassType.Concrete, new[] { "AWNING", "JALOUSIE", "SHUTTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcShadingDeviceType", "IfcBuiltElementType", ClassType.Concrete, new[] { "AWNING", "JALOUSIE", "SHUTTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSlab", "IfcBuiltElement", ClassType.Concrete, new[] { "APPROACH_SLAB", "BASESLAB", "FLOOR", "LANDING", "PAVING", "ROOF", "SIDEWALK", "TRACKSLAB", "WEARING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSlabType", "IfcBuiltElementType", ClassType.Concrete, new[] { "APPROACH_SLAB", "BASESLAB", "FLOOR", "LANDING", "PAVING", "ROOF", "SIDEWALK", "TRACKSLAB", "WEARING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcStair", "IfcBuiltElement", ClassType.Concrete, new[] { "CURVED_RUN_STAIR", "DOUBLE_RETURN_STAIR", "HALF_TURN_STAIR", "HALF_WINDING_STAIR", "LADDER", "QUARTER_TURN_STAIR", "QUARTER_WINDING_STAIR", "SPIRAL_STAIR", "STRAIGHT_RUN_STAIR", "THREE_QUARTER_TURN_STAIR", "THREE_QUARTER_WINDING_STAIR", "TWO_CURVED_RUN_STAIR", "TWO_QUARTER_TURN_STAIR", "TWO_QUARTER_WINDING_STAIR", "TWO_STRAIGHT_RUN_STAIR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcStairFlight", "IfcBuiltElement", ClassType.Concrete, new[] { "CURVED", "FREEFORM", "SPIRAL", "STRAIGHT", "WINDER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "NumberOfRisers", "NumberOfTreads", "RiserHeight", "TreadLength", "PredefinedType" }),
			new ClassInfo("IfcStairFlightType", "IfcBuiltElementType", ClassType.Concrete, new[] { "CURVED", "FREEFORM", "SPIRAL", "STRAIGHT", "WINDER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcStairType", "IfcBuiltElementType", ClassType.Concrete, new[] { "CURVED_RUN_STAIR", "DOUBLE_RETURN_STAIR", "HALF_TURN_STAIR", "HALF_WINDING_STAIR", "LADDER", "QUARTER_TURN_STAIR", "QUARTER_WINDING_STAIR", "SPIRAL_STAIR", "STRAIGHT_RUN_STAIR", "THREE_QUARTER_TURN_STAIR", "THREE_QUARTER_WINDING_STAIR", "TWO_CURVED_RUN_STAIR", "TWO_QUARTER_TURN_STAIR", "TWO_QUARTER_WINDING_STAIR", "TWO_STRAIGHT_RUN_STAIR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcWall", "IfcBuiltElement", ClassType.Concrete, new[] { "ELEMENTEDWALL", "MOVABLE", "PARAPET", "PARTITIONING", "PLUMBINGWALL", "POLYGONAL", "RETAININGWALL", "SHEAR", "SOLIDWALL", "STANDARD", "WAVEWALL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcWallStandardCase", "IfcWall", ClassType.Concrete, new[] { "ELEMENTEDWALL", "MOVABLE", "PARAPET", "PARTITIONING", "PLUMBINGWALL", "POLYGONAL", "RETAININGWALL", "SHEAR", "SOLIDWALL", "STANDARD", "WAVEWALL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcWallType", "IfcBuiltElementType", ClassType.Concrete, new[] { "ELEMENTEDWALL", "MOVABLE", "PARAPET", "PARTITIONING", "PLUMBINGWALL", "POLYGONAL", "RETAININGWALL", "SHEAR", "SOLIDWALL", "STANDARD", "WAVEWALL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcWindow", "IfcBuiltElement", ClassType.Concrete, new[] { "LIGHTDOME", "SKYLIGHT", "WINDOW", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "OverallHeight", "OverallWidth", "PredefinedType", "PartitioningType", "UserDefinedPartitioningType" }),
			new ClassInfo("IfcWindowType", "IfcBuiltElementType", ClassType.Concrete, new[] { "LIGHTDOME", "SKYLIGHT", "WINDOW", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "PartitioningType", "ParameterTakesPrecedence", "UserDefinedPartitioningType" }),
			new ClassInfo("IfcBearing", "IfcBuiltElement", ClassType.Concrete, new[] { "CYLINDRICAL", "DISK", "ELASTOMERIC", "GUIDE", "POT", "ROCKER", "ROLLER", "SPHERICAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBearingType", "IfcBuiltElementType", ClassType.Concrete, new[] { "CYLINDRICAL", "DISK", "ELASTOMERIC", "GUIDE", "POT", "ROCKER", "ROLLER", "SPHERICAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedBldgElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcAsset", "IfcGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "OriginalValue", "CurrentValue", "TotalReplacementCost", "Owner", "User", "ResponsiblePerson", "IncorporationDate", "DepreciatedValue" }),
			new ClassInfo("IfcFurniture", "IfcFurnishingElement", ClassType.Concrete, new[] { "BED", "CHAIR", "DESK", "FILECABINET", "SHELF", "SOFA", "TABLE", "TECHNICALCABINET", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFurnishingElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcFurnitureType", "IfcFurnishingElementType", ClassType.Concrete, new[] { "BED", "CHAIR", "DESK", "FILECABINET", "SHELF", "SOFA", "TABLE", "TECHNICALCABINET", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "AssemblyPlace", "PredefinedType" }),
			new ClassInfo("IfcFurnishingElementType", "IfcElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcInventory", "IfcGroup", ClassType.Concrete, new[] { "ASSETINVENTORY", "FURNITUREINVENTORY", "SPACEINVENTORY", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "Jurisdiction", "ResponsiblePersons", "LastUpdateDate", "CurrentValue", "OriginalValue" }),
			new ClassInfo("IfcOccupant", "IfcActor", ClassType.Concrete, new[] { "ASSIGNEE", "ASSIGNOR", "LESSEE", "LESSOR", "LETTINGAGENT", "OWNER", "TENANT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheActor", "PredefinedType" }),
			new ClassInfo("IfcActor", "IfcObject", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "TheActor" }),
			new ClassInfo("IfcSystemFurnitureElement", "IfcFurnishingElement", ClassType.Concrete, new[] { "PANEL", "SUBRACK", "WORKSURFACE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSystemFurnitureElementType", "IfcFurnishingElementType", ClassType.Concrete, new[] { "PANEL", "SUBRACK", "WORKSURFACE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedFacilitiesElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcArbitraryClosedProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "OuterCurve" }),
			new ClassInfo("IfcProfileDef", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName" }),
			new ClassInfo("IfcArbitraryOpenProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Curve" }),
			new ClassInfo("IfcArbitraryProfileDefWithVoids", "IfcArbitraryClosedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "OuterCurve", "InnerCurves" }),
			new ClassInfo("IfcAsymmetricIShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "BottomFlangeWidth", "OverallDepth", "WebThickness", "BottomFlangeThickness", "BottomFlangeFilletRadius", "TopFlangeWidth", "TopFlangeThickness", "TopFlangeFilletRadius", "BottomFlangeEdgeRadius", "BottomFlangeSlope", "TopFlangeEdgeRadius", "TopFlangeSlope" }),
			new ClassInfo("IfcParameterizedProfileDef", "IfcProfileDef", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position" }),
			new ClassInfo("IfcCenterLineProfileDef", "IfcArbitraryOpenProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Curve", "Thickness" }),
			new ClassInfo("IfcCircleHollowProfileDef", "IfcCircleProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Radius", "WallThickness" }),
			new ClassInfo("IfcCircleProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Radius" }),
			new ClassInfo("IfcCompositeProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Profiles", "Label" }),
			new ClassInfo("IfcCShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "Width", "WallThickness", "Girth", "InternalFilletRadius" }),
			new ClassInfo("IfcDerivedProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "ParentProfile", "Operator", "Label" }),
			new ClassInfo("IfcEllipseProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "SemiAxis1", "SemiAxis2" }),
			new ClassInfo("IfcIShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "OverallWidth", "OverallDepth", "WebThickness", "FlangeThickness", "FilletRadius", "FlangeEdgeRadius", "FlangeSlope" }),
			new ClassInfo("IfcLShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "Width", "Thickness", "FilletRadius", "EdgeRadius", "LegSlope" }),
			new ClassInfo("IfcMirroredProfileDef", "IfcDerivedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "ParentProfile", "Operator", "Label" }),
			new ClassInfo("IfcProfileProperties", "IfcExtendedProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "Name", "Description", "Properties", "ProfileDefinition" }),
			new ClassInfo("IfcRectangleHollowProfileDef", "IfcRectangleProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "XDim", "YDim", "WallThickness", "InnerFilletRadius", "OuterFilletRadius" }),
			new ClassInfo("IfcRectangleProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "XDim", "YDim" }),
			new ClassInfo("IfcReinforcementBarProperties", "IfcPreDefinedProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "TotalCrossSectionArea", "SteelGrade", "BarSurface", "EffectiveDepth", "NominalBarDiameter", "BarCount" }),
			new ClassInfo("IfcRoundedRectangleProfileDef", "IfcRectangleProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "XDim", "YDim", "RoundingRadius" }),
			new ClassInfo("IfcSectionProperties", "IfcPreDefinedProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "SectionType", "StartProfile", "EndProfile" }),
			new ClassInfo("IfcSectionReinforcementProperties", "IfcPreDefinedProperties", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "LongitudinalStartPosition", "LongitudinalEndPosition", "TransversePosition", "ReinforcementRole", "SectionDefinition", "CrossSectionReinforcementDefinitions" }),
			new ClassInfo("IfcTrapeziumProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "BottomXDim", "TopXDim", "YDim", "TopXOffset" }),
			new ClassInfo("IfcTShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "FlangeEdgeRadius", "WebEdgeRadius", "WebSlope", "FlangeSlope" }),
			new ClassInfo("IfcUShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "EdgeRadius", "FlangeSlope" }),
			new ClassInfo("IfcZShapeProfileDef", "IfcParameterizedProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "Position", "Depth", "FlangeWidth", "WebThickness", "FlangeThickness", "FilletRadius", "EdgeRadius" }),
			new ClassInfo("IfcOpenCrossProfileDef", "IfcProfileDef", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProfileResource", new[] { "ProfileType", "ProfileName", "HorizontalWidths", "Widths", "Slopes", "Tags", "OffsetPoint" }),
			new ClassInfo("IfcApplication", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.UtilityResource", new[] { "ApplicationDeveloper", "Version", "ApplicationFullName", "ApplicationIdentifier" }),
			new ClassInfo("IfcOwnerHistory", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.UtilityResource", new[] { "OwningUser", "OwningApplication", "State", "ChangeAction", "LastModifiedDate", "LastModifyingUser", "LastModifyingApplication", "CreationDate" }),
			new ClassInfo("IfcTable", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.UtilityResource", new[] { "Name", "Rows", "Columns" }),
			new ClassInfo("IfcTableColumn", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.UtilityResource", new[] { "Identifier", "Name", "Description", "Unit", "ReferencePath" }),
			new ClassInfo("IfcTableRow", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.UtilityResource", new[] { "RowCells", "IsHeading" }),
			new ClassInfo("IfcGloballyUniqueId", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.UtilityResource", new[] { "" }),
			new ClassInfo("IfcAnnotationFillArea", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationDefinitionResource", new[] { "OuterBoundary", "InnerBoundaries" }),
			new ClassInfo("IfcPlanarBox", "IfcPlanarExtent", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationDefinitionResource", new[] { "SizeInX", "SizeInY", "Placement" }),
			new ClassInfo("IfcPlanarExtent", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationDefinitionResource", new[] { "SizeInX", "SizeInY" }),
			new ClassInfo("IfcTextLiteral", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationDefinitionResource", new[] { "Literal", "Placement", "Path" }),
			new ClassInfo("IfcTextLiteralWithExtent", "IfcTextLiteral", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationDefinitionResource", new[] { "Literal", "Placement", "Path", "Extent", "BoxAlignment" }),
			new ClassInfo("IfcBoxAlignment", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.PresentationDefinitionResource", new[] { "" }),
			new ClassInfo("IfcAdvancedFace", "IfcFaceSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "Bounds", "FaceSurface", "SameSense" }),
			new ClassInfo("IfcFaceSurface", "IfcFace", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "Bounds", "FaceSurface", "SameSense" }),
			new ClassInfo("IfcFace", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "Bounds" }),
			new ClassInfo("IfcTopologicalRepresentationItem", "IfcRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "" }),
			new ClassInfo("IfcClosedShell", "IfcConnectedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "CfsFaces" }),
			new ClassInfo("IfcConnectedFaceSet", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "CfsFaces" }),
			new ClassInfo("IfcEdge", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "EdgeStart", "EdgeEnd" }),
			new ClassInfo("IfcEdgeCurve", "IfcEdge", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "EdgeStart", "EdgeEnd", "EdgeGeometry", "SameSense" }),
			new ClassInfo("IfcEdgeLoop", "IfcLoop", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "EdgeList" }),
			new ClassInfo("IfcLoop", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "" }),
			new ClassInfo("IfcFaceBound", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "Bound", "Orientation" }),
			new ClassInfo("IfcFaceOuterBound", "IfcFaceBound", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "Bound", "Orientation" }),
			new ClassInfo("IfcOpenShell", "IfcConnectedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "CfsFaces" }),
			new ClassInfo("IfcOrientedEdge", "IfcEdge", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "EdgeStart", "EdgeEnd", "EdgeElement", "Orientation" }),
			new ClassInfo("IfcPath", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "EdgeList" }),
			new ClassInfo("IfcPolyLoop", "IfcLoop", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "Polygon" }),
			new ClassInfo("IfcSubedge", "IfcEdge", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "EdgeStart", "EdgeEnd", "ParentEdge" }),
			new ClassInfo("IfcVertex", "IfcTopologicalRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "" }),
			new ClassInfo("IfcVertexLoop", "IfcLoop", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "LoopVertex" }),
			new ClassInfo("IfcVertexPoint", "IfcVertex", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.TopologyResource", new[] { "VertexGeometry" }),
			new ClassInfo("IfcComplexPropertyTemplate", "IfcPropertyTemplate", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "UsageName", "TemplateType", "HasPropertyTemplates" }),
			new ClassInfo("IfcPropertyTemplate", "IfcPropertyTemplateDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcPropertyTemplateDefinition", "IfcPropertyDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcContext", "IfcObjectDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "Phase", "RepresentationContexts", "UnitsInContext" }),
			new ClassInfo("IfcProject", "IfcContext", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "Phase", "RepresentationContexts", "UnitsInContext" }),
			new ClassInfo("IfcProjectLibrary", "IfcContext", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName", "Phase", "RepresentationContexts", "UnitsInContext" }),
			new ClassInfo("IfcPropertySet", "IfcPropertySetDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "HasProperties" }),
			new ClassInfo("IfcPropertySetTemplate", "IfcPropertyTemplateDefinition", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "TemplateType", "ApplicableEntity", "HasPropertyTemplates" }),
			new ClassInfo("IfcQuantitySet", "IfcPropertySetDefinition", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRelAggregates", "IfcRelDecomposes", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingObject", "RelatedObjects" }),
			new ClassInfo("IfcRelDecomposes", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRelAssigns", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType" }),
			new ClassInfo("IfcRelAssignsToActor", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingActor", "ActingRole" }),
			new ClassInfo("IfcRelAssignsToControl", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingControl" }),
			new ClassInfo("IfcRelAssignsToGroup", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingGroup" }),
			new ClassInfo("IfcRelAssignsToGroupByFactor", "IfcRelAssignsToGroup", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingGroup", "Factor" }),
			new ClassInfo("IfcRelAssignsToProcess", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingProcess", "QuantityInProcess" }),
			new ClassInfo("IfcRelAssignsToProduct", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingProduct" }),
			new ClassInfo("IfcRelAssignsToResource", "IfcRelAssigns", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatedObjectsType", "RelatingResource" }),
			new ClassInfo("IfcRelAssociates", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects" }),
			new ClassInfo("IfcRelAssociatesClassification", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingClassification" }),
			new ClassInfo("IfcRelAssociatesDocument", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingDocument" }),
			new ClassInfo("IfcRelAssociatesLibrary", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingLibrary" }),
			new ClassInfo("IfcRelDeclares", "IfcRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingContext", "RelatedDefinitions" }),
			new ClassInfo("IfcRelDefines", "IfcRelationship", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description" }),
			new ClassInfo("IfcRelDefinesByObject", "IfcRelDefines", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingObject" }),
			new ClassInfo("IfcRelDefinesByProperties", "IfcRelDefines", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingPropertyDefinition" }),
			new ClassInfo("IfcRelDefinesByTemplate", "IfcRelDefines", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedPropertySets", "RelatingTemplate" }),
			new ClassInfo("IfcRelDefinesByType", "IfcRelDefines", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingType" }),
			new ClassInfo("IfcRelNests", "IfcRelDecomposes", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingObject", "RelatedObjects" }),
			new ClassInfo("IfcResource", "IfcObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription" }),
			new ClassInfo("IfcSimplePropertyTemplate", "IfcPropertyTemplate", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "TemplateType", "PrimaryMeasureType", "SecondaryMeasureType", "Enumerators", "PrimaryUnit", "SecondaryUnit", "Expression", "AccessState" }),
			new ClassInfo("IfcTypeResource", "IfcTypeObject", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType" }),
			new ClassInfo("IfcPropertySetDefinitionSet", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "" }),
			new ClassInfo("IfcStrippedOptional", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.Kernel", new[] { "" }),
			new ClassInfo("IfcActionRequest", "IfcControl", ClassType.Concrete, new[] { "EMAIL", "FAX", "PHONE", "POST", "VERBAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "LongDescription" }),
			new ClassInfo("IfcCostItem", "IfcControl", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "CostValues", "CostQuantities" }),
			new ClassInfo("IfcCostSchedule", "IfcControl", ClassType.Concrete, new[] { "BUDGET", "COSTPLAN", "ESTIMATE", "PRICEDBILLOFQUANTITIES", "SCHEDULEOFRATES", "TENDER", "UNPRICEDBILLOFQUANTITIES", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "SubmittedOn", "UpdateDate" }),
			new ClassInfo("IfcPermit", "IfcControl", ClassType.Concrete, new[] { "ACCESS", "BUILDING", "WORK", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "LongDescription" }),
			new ClassInfo("IfcProjectOrder", "IfcControl", ClassType.Concrete, new[] { "CHANGEORDER", "MAINTENANCEWORKORDER", "MOVEORDER", "PURCHASEORDER", "WORKORDER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.SharedMgmtElements", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "PredefinedType", "Status", "LongDescription" }),
			new ClassInfo("IfcAlignment", "IfcLinearPositioningElement", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType" }),
			new ClassInfo("IfcLinearPositioningElement", "IfcPositioningElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcPositioningElement", "IfcProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcReferent", "IfcPositioningElement", ClassType.Concrete, new[] { "BOUNDARY", "INTERSECTION", "KILOPOINT", "LANDMARK", "MILEPOINT", "POSITION", "REFERENCEMARKER", "STATION", "SUPERELEVATIONEVENT", "WIDTHEVENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType" }),
			new ClassInfo("IfcAnnotation", "IfcProduct", ClassType.Concrete, new[] { "CONTOURLINE", "DIMENSION", "ISOBAR", "ISOLUX", "ISOTHERM", "LEADER", "SURVEY", "SYMBOL", "TEXT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "PredefinedType" }),
			new ClassInfo("IfcBuilding", "IfcFacility", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "ElevationOfRefHeight", "ElevationOfTerrain", "BuildingAddress" }),
			new ClassInfo("IfcBuildingStorey", "IfcSpatialStructureElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "Elevation" }),
			new ClassInfo("IfcCivilElement", "IfcElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcCivilElementType", "IfcElementType", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcElementAssembly", "IfcElement", ClassType.Concrete, new[] { "ABUTMENT", "ACCESSORY_ASSEMBLY", "ARCH", "BEAM_GRID", "BRACED_FRAME", "CROSS_BRACING", "DECK", "DILATATIONPANEL", "ENTRANCEWORKS", "GIRDER", "GRID", "MAST", "PIER", "PYLON", "RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY", "REINFORCEMENT_UNIT", "RIGID_FRAME", "SHELTER", "SIGNALASSEMBLY", "SLAB_FIELD", "SUMPBUSTER", "SUPPORTINGASSEMBLY", "SUSPENSIONASSEMBLY", "TRACKPANEL", "TRACTION_SWITCHING_ASSEMBLY", "TRAFFIC_CALMING_DEVICE", "TRUSS", "TURNOUTPANEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "AssemblyPlace", "PredefinedType" }),
			new ClassInfo("IfcElementAssemblyType", "IfcElementType", ClassType.Concrete, new[] { "ABUTMENT", "ACCESSORY_ASSEMBLY", "ARCH", "BEAM_GRID", "BRACED_FRAME", "CROSS_BRACING", "DECK", "DILATATIONPANEL", "ENTRANCEWORKS", "GIRDER", "GRID", "MAST", "PIER", "PYLON", "RAIL_MECHANICAL_EQUIPMENT_ASSEMBLY", "REINFORCEMENT_UNIT", "RIGID_FRAME", "SHELTER", "SIGNALASSEMBLY", "SLAB_FIELD", "SUMPBUSTER", "SUPPORTINGASSEMBLY", "SUSPENSIONASSEMBLY", "TRACKPANEL", "TRACTION_SWITCHING_ASSEMBLY", "TRAFFIC_CALMING_DEVICE", "TRUSS", "TURNOUTPANEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElementQuantity", "IfcQuantitySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "MethodOfMeasurement", "Quantities" }),
			new ClassInfo("IfcExternalSpatialElement", "IfcExternalSpatialStructureElement", ClassType.Concrete, new[] { "EXTERNAL", "EXTERNAL_EARTH", "EXTERNAL_FIRE", "EXTERNAL_WATER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "PredefinedType" }),
			new ClassInfo("IfcExternalSpatialStructureElement", "IfcSpatialElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName" }),
			new ClassInfo("IfcFeatureElementAddition", "IfcFeatureElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcGeographicElement", "IfcElement", ClassType.Concrete, new[] { "SOIL_BORING_POINT", "TERRAIN", "VEGETATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcGeographicElementType", "IfcElementType", ClassType.Concrete, new[] { "SOIL_BORING_POINT", "TERRAIN", "VEGETATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcGrid", "IfcPositioningElement", ClassType.Concrete, new[] { "IRREGULAR", "RADIAL", "RECTANGULAR", "TRIANGULAR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "UAxes", "VAxes", "WAxes", "PredefinedType" }),
			new ClassInfo("IfcOpeningElement", "IfcFeatureElementSubtraction", ClassType.Concrete, new[] { "OPENING", "RECESS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcProjectionElement", "IfcFeatureElementAddition", ClassType.Concrete, new[] { "BLISTER", "DEVIATOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcRelAssociatesMaterial", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingMaterial" }),
			new ClassInfo("IfcRelConnectsPorts", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingPort", "RelatedPort", "RealizingElement" }),
			new ClassInfo("IfcRelConnectsPortToElement", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingPort", "RelatedElement" }),
			new ClassInfo("IfcRelConnectsWithRealizingElements", "IfcRelConnectsElements", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ConnectionGeometry", "RelatingElement", "RelatedElement", "RealizingElements", "ConnectionType" }),
			new ClassInfo("IfcRelContainedInSpatialStructure", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedElements", "RelatingStructure" }),
			new ClassInfo("IfcRelFillsElement", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingOpeningElement", "RelatedBuildingElement" }),
			new ClassInfo("IfcRelInterferesElements", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedElement", "InterferenceGeometry", "InterferenceType", "ImpliedOrder", "InterferenceSpace" }),
			new ClassInfo("IfcRelProjectsElement", "IfcRelDecomposes", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedFeatureElement" }),
			new ClassInfo("IfcRelReferencedInSpatialStructure", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedElements", "RelatingStructure" }),
			new ClassInfo("IfcRelServicesBuildings", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSystem", "RelatedBuildings" }),
			new ClassInfo("IfcRelSpaceBoundary", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedBuildingElement", "ConnectionGeometry", "PhysicalOrVirtualBoundary", "InternalOrExternalBoundary" }),
			new ClassInfo("IfcRelSpaceBoundary1stLevel", "IfcRelSpaceBoundary", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedBuildingElement", "ConnectionGeometry", "PhysicalOrVirtualBoundary", "InternalOrExternalBoundary", "ParentBoundary" }),
			new ClassInfo("IfcRelSpaceBoundary2ndLevel", "IfcRelSpaceBoundary1stLevel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingSpace", "RelatedBuildingElement", "ConnectionGeometry", "PhysicalOrVirtualBoundary", "InternalOrExternalBoundary", "ParentBoundary", "CorrespondingBoundary" }),
			new ClassInfo("IfcRelVoidsElement", "IfcRelDecomposes", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingBuildingElement", "RelatedOpeningElement" }),
			new ClassInfo("IfcSite", "IfcSpatialStructureElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "RefLatitude", "RefLongitude", "RefElevation", "LandTitleNumber", "SiteAddress" }),
			new ClassInfo("IfcSpace", "IfcSpatialStructureElement", ClassType.Concrete, new[] { "BERTH", "EXTERNAL", "GFA", "INTERNAL", "PARKING", "SPACE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "PredefinedType", "ElevationWithFlooring" }),
			new ClassInfo("IfcSpaceType", "IfcSpatialStructureElementType", ClassType.Concrete, new[] { "BERTH", "EXTERNAL", "GFA", "INTERNAL", "PARKING", "SPACE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "LongName" }),
			new ClassInfo("IfcSpatialStructureElementType", "IfcSpatialElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcSpatialElementType", "IfcTypeProduct", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcSpatialZone", "IfcSpatialElement", ClassType.Concrete, new[] { "CONSTRUCTION", "FIRESAFETY", "INTERFERENCE", "LIGHTING", "OCCUPANCY", "RESERVATION", "SECURITY", "THERMAL", "TRANSPORT", "VENTILATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "PredefinedType" }),
			new ClassInfo("IfcSpatialZoneType", "IfcSpatialElementType", ClassType.Concrete, new[] { "CONSTRUCTION", "FIRESAFETY", "INTERFERENCE", "LIGHTING", "OCCUPANCY", "RESERVATION", "SECURITY", "THERMAL", "TRANSPORT", "VENTILATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType", "LongName" }),
			new ClassInfo("IfcTransportElement", "IfcTransportationDevice", ClassType.Concrete, new[] { "CRANEWAY", "ELEVATOR", "ESCALATOR", "HAULINGGEAR", "LIFTINGGEAR", "MOVINGWALKWAY", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcTransportationDevice", "IfcElement", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag" }),
			new ClassInfo("IfcTransportElementType", "IfcTransportationDeviceType", ClassType.Concrete, new[] { "CRANEWAY", "ELEVATOR", "ESCALATOR", "HAULINGGEAR", "LIFTINGGEAR", "MOVINGWALKWAY", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTransportationDeviceType", "IfcElementType", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType" }),
			new ClassInfo("IfcVirtualElement", "IfcElement", ClassType.Concrete, new[] { "BOUNDARY", "CLEARANCE", "PROVISIONFORVOID", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcZone", "IfcSystem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "LongName" }),
			new ClassInfo("IfcAlignmentCant", "IfcLinearElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "RailHeadDistance" }),
			new ClassInfo("IfcLinearElement", "IfcProduct", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcAlignmentHorizontal", "IfcLinearElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcAlignmentSegment", "IfcLinearElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "DesignParameters" }),
			new ClassInfo("IfcAlignmentVertical", "IfcLinearElement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation" }),
			new ClassInfo("IfcBridge", "IfcFacility", ClassType.Concrete, new[] { "ARCHED", "CABLE_STAYED", "CANTILEVER", "CULVERT", "FRAMEWORK", "GIRDER", "SUSPENSION", "TRUSS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "PredefinedType" }),
			new ClassInfo("IfcBridgePart", "IfcFacilityPart", ClassType.Concrete, new[] { "ABUTMENT", "DECK", "DECK_SEGMENT", "FOUNDATION", "PIER", "PIER_SEGMENT", "PYLON", "SUBSTRUCTURE", "SUPERSTRUCTURE", "SURFACESTRUCTURE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "UsageType", "PredefinedType" }),
			new ClassInfo("IfcBuiltSystem", "IfcSystem", ClassType.Concrete, new[] { "EROSIONPREVENTION", "FENESTRATION", "FOUNDATION", "LOADBEARING", "MOORING", "OUTERSHELL", "PRESTRESSING", "RAILWAYLINE", "RAILWAYTRACK", "REINFORCING", "SHADING", "TRACKCIRCUIT", "TRANSPORT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "PredefinedType", "LongName" }),
			new ClassInfo("IfcFacilityPartCommon", "IfcFacilityPart", ClassType.Concrete, new[] { "ABOVEGROUND", "BELOWGROUND", "JUNCTION", "LEVELCROSSING", "SEGMENT", "SUBSTRUCTURE", "SUPERSTRUCTURE", "TERMINAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "LongName", "CompositionType", "UsageType", "PredefinedType" }),
			new ClassInfo("IfcImpactProtectionDevice", "IfcElementComponent", ClassType.Concrete, new[] { "BUMPER", "CRASHCUSHION", "DAMPINGSYSTEM", "FENDER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcImpactProtectionDeviceType", "IfcElementComponentType", ClassType.Concrete, new[] { "BUMPER", "CRASHCUSHION", "DAMPINGSYSTEM", "FENDER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcRelAdheresToElement", "IfcRelDecomposes", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingElement", "RelatedSurfaceFeatures" }),
			new ClassInfo("IfcRelAssociatesProfileDef", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingProfileDef" }),
			new ClassInfo("IfcRelPositions", "IfcRelConnects", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatingPositioningElement", "RelatedProducts" }),
			new ClassInfo("IfcVehicle", "IfcTransportationDevice", ClassType.Concrete, new[] { "CARGO", "ROLLINGSTOCK", "VEHICLE", "VEHICLEAIR", "VEHICLEMARINE", "VEHICLETRACKED", "VEHICLEWHEELED", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcVehicleType", "IfcTransportationDeviceType", ClassType.Concrete, new[] { "CARGO", "ROLLINGSTOCK", "VEHICLE", "VEHICLEAIR", "VEHICLEMARINE", "VEHICLETRACKED", "VEHICLEWHEELED", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcVibrationDamper", "IfcElementComponent", ClassType.Concrete, new[] { "AXIAL_YIELD", "BENDING_YIELD", "FRICTION", "RUBBER", "SHEAR_YIELD", "VISCOUS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcVibrationDamperType", "IfcElementComponentType", ClassType.Concrete, new[] { "AXIAL_YIELD", "BENDING_YIELD", "FRICTION", "RUBBER", "SHEAR_YIELD", "VISCOUS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ProductExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcAirTerminal", "IfcFlowTerminal", ClassType.Concrete, new[] { "DIFFUSER", "GRILLE", "LOUVRE", "REGISTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcAirTerminalBox", "IfcFlowController", ClassType.Concrete, new[] { "CONSTANTFLOW", "VARIABLEFLOWPRESSUREDEPENDANT", "VARIABLEFLOWPRESSUREINDEPENDANT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcAirTerminalBoxType", "IfcFlowControllerType", ClassType.Concrete, new[] { "CONSTANTFLOW", "VARIABLEFLOWPRESSUREDEPENDANT", "VARIABLEFLOWPRESSUREINDEPENDANT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcAirTerminalType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "DIFFUSER", "GRILLE", "LOUVRE", "REGISTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcAirToAirHeatRecovery", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "FIXEDPLATECOUNTERFLOWEXCHANGER", "FIXEDPLATECROSSFLOWEXCHANGER", "FIXEDPLATEPARALLELFLOWEXCHANGER", "HEATPIPE", "ROTARYWHEEL", "RUNAROUNDCOILLOOP", "THERMOSIPHONCOILTYPEHEATEXCHANGERS", "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS", "TWINTOWERENTHALPYRECOVERYLOOPS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcAirToAirHeatRecoveryType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "FIXEDPLATECOUNTERFLOWEXCHANGER", "FIXEDPLATECROSSFLOWEXCHANGER", "FIXEDPLATEPARALLELFLOWEXCHANGER", "HEATPIPE", "ROTARYWHEEL", "RUNAROUNDCOILLOOP", "THERMOSIPHONCOILTYPEHEATEXCHANGERS", "THERMOSIPHONSEALEDTUBEHEATEXCHANGERS", "TWINTOWERENTHALPYRECOVERYLOOPS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBoiler", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "STEAM", "WATER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBoilerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "STEAM", "WATER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcBurner", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcBurnerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcChiller", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "AIRCOOLED", "HEATRECOVERY", "WATERCOOLED", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcChillerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "AIRCOOLED", "HEATRECOVERY", "WATERCOOLED", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCoil", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "DXCOOLINGCOIL", "ELECTRICHEATINGCOIL", "GASHEATINGCOIL", "HYDRONICCOIL", "STEAMHEATINGCOIL", "WATERCOOLINGCOIL", "WATERHEATINGCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCoilType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DXCOOLINGCOIL", "ELECTRICHEATINGCOIL", "GASHEATINGCOIL", "HYDRONICCOIL", "STEAMHEATINGCOIL", "WATERCOOLINGCOIL", "WATERHEATINGCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCompressor", "IfcFlowMovingDevice", ClassType.Concrete, new[] { "BOOSTER", "DYNAMIC", "HERMETIC", "OPENTYPE", "RECIPROCATING", "ROLLINGPISTON", "ROTARY", "ROTARYVANE", "SCROLL", "SEMIHERMETIC", "SINGLESCREW", "SINGLESTAGE", "TROCHOIDAL", "TWINSCREW", "WELDEDSHELLHERMETIC", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCompressorType", "IfcFlowMovingDeviceType", ClassType.Concrete, new[] { "BOOSTER", "DYNAMIC", "HERMETIC", "OPENTYPE", "RECIPROCATING", "ROLLINGPISTON", "ROTARY", "ROTARYVANE", "SCROLL", "SEMIHERMETIC", "SINGLESCREW", "SINGLESTAGE", "TROCHOIDAL", "TWINSCREW", "WELDEDSHELLHERMETIC", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCondenser", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "AIRCOOLED", "EVAPORATIVECOOLED", "WATERCOOLED", "WATERCOOLEDBRAZEDPLATE", "WATERCOOLEDSHELLCOIL", "WATERCOOLEDSHELLTUBE", "WATERCOOLEDTUBEINTUBE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCondenserType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "AIRCOOLED", "EVAPORATIVECOOLED", "WATERCOOLED", "WATERCOOLEDBRAZEDPLATE", "WATERCOOLEDSHELLCOIL", "WATERCOOLEDSHELLTUBE", "WATERCOOLEDTUBEINTUBE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCooledBeam", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "ACTIVE", "PASSIVE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCooledBeamType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "ACTIVE", "PASSIVE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCoolingTower", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "MECHANICALFORCEDDRAFT", "MECHANICALINDUCEDDRAFT", "NATURALDRAFT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCoolingTowerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "MECHANICALFORCEDDRAFT", "MECHANICALINDUCEDDRAFT", "NATURALDRAFT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDamper", "IfcFlowController", ClassType.Concrete, new[] { "BACKDRAFTDAMPER", "BALANCINGDAMPER", "BLASTDAMPER", "CONTROLDAMPER", "FIREDAMPER", "FIRESMOKEDAMPER", "FUMEHOODEXHAUST", "GRAVITYDAMPER", "GRAVITYRELIEFDAMPER", "RELIEFDAMPER", "SMOKEDAMPER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDamperType", "IfcFlowControllerType", ClassType.Concrete, new[] { "BACKDRAFTDAMPER", "BALANCINGDAMPER", "BLASTDAMPER", "CONTROLDAMPER", "FIREDAMPER", "FIRESMOKEDAMPER", "FUMEHOODEXHAUST", "GRAVITYDAMPER", "GRAVITYRELIEFDAMPER", "RELIEFDAMPER", "SMOKEDAMPER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDuctFitting", "IfcFlowFitting", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "OBSTRUCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDuctFittingType", "IfcFlowFittingType", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "OBSTRUCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDuctSegment", "IfcFlowSegment", ClassType.Concrete, new[] { "FLEXIBLESEGMENT", "RIGIDSEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDuctSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "FLEXIBLESEGMENT", "RIGIDSEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDuctSilencer", "IfcFlowTreatmentDevice", ClassType.Concrete, new[] { "FLATOVAL", "RECTANGULAR", "ROUND", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDuctSilencerType", "IfcFlowTreatmentDeviceType", ClassType.Concrete, new[] { "FLATOVAL", "RECTANGULAR", "ROUND", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcEngine", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "EXTERNALCOMBUSTION", "INTERNALCOMBUSTION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcEngineType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "EXTERNALCOMBUSTION", "INTERNALCOMBUSTION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcEvaporativeCooler", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "DIRECTEVAPORATIVEAIRWASHER", "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER", "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER", "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER", "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER", "INDIRECTDIRECTCOMBINATION", "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER", "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER", "INDIRECTEVAPORATIVEWETCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcEvaporativeCoolerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DIRECTEVAPORATIVEAIRWASHER", "DIRECTEVAPORATIVEPACKAGEDROTARYAIRCOOLER", "DIRECTEVAPORATIVERANDOMMEDIAAIRCOOLER", "DIRECTEVAPORATIVERIGIDMEDIAAIRCOOLER", "DIRECTEVAPORATIVESLINGERSPACKAGEDAIRCOOLER", "INDIRECTDIRECTCOMBINATION", "INDIRECTEVAPORATIVECOOLINGTOWERORCOILCOOLER", "INDIRECTEVAPORATIVEPACKAGEAIRCOOLER", "INDIRECTEVAPORATIVEWETCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcEvaporator", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "DIRECTEXPANSION", "DIRECTEXPANSIONBRAZEDPLATE", "DIRECTEXPANSIONSHELLANDTUBE", "DIRECTEXPANSIONTUBEINTUBE", "FLOODEDSHELLANDTUBE", "SHELLANDCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcEvaporatorType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DIRECTEXPANSION", "DIRECTEXPANSIONBRAZEDPLATE", "DIRECTEXPANSIONSHELLANDTUBE", "DIRECTEXPANSIONTUBEINTUBE", "FLOODEDSHELLANDTUBE", "SHELLANDCOIL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFan", "IfcFlowMovingDevice", ClassType.Concrete, new[] { "CENTRIFUGALAIRFOIL", "CENTRIFUGALBACKWARDINCLINEDCURVED", "CENTRIFUGALFORWARDCURVED", "CENTRIFUGALRADIAL", "PROPELLORAXIAL", "TUBEAXIAL", "VANEAXIAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFanType", "IfcFlowMovingDeviceType", ClassType.Concrete, new[] { "CENTRIFUGALAIRFOIL", "CENTRIFUGALBACKWARDINCLINEDCURVED", "CENTRIFUGALFORWARDCURVED", "CENTRIFUGALRADIAL", "PROPELLORAXIAL", "TUBEAXIAL", "VANEAXIAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFilter", "IfcFlowTreatmentDevice", ClassType.Concrete, new[] { "AIRPARTICLEFILTER", "COMPRESSEDAIRFILTER", "ODORFILTER", "OILFILTER", "STRAINER", "WATERFILTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFilterType", "IfcFlowTreatmentDeviceType", ClassType.Concrete, new[] { "AIRPARTICLEFILTER", "COMPRESSEDAIRFILTER", "ODORFILTER", "OILFILTER", "STRAINER", "WATERFILTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFlowMeter", "IfcFlowController", ClassType.Concrete, new[] { "ENERGYMETER", "GASMETER", "OILMETER", "WATERMETER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFlowMeterType", "IfcFlowControllerType", ClassType.Concrete, new[] { "ENERGYMETER", "GASMETER", "OILMETER", "WATERMETER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcHeatExchanger", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "PLATE", "SHELLANDTUBE", "TURNOUTHEATING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcHeatExchangerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "PLATE", "SHELLANDTUBE", "TURNOUTHEATING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcHumidifier", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "ADIABATICAIRWASHER", "ADIABATICATOMIZING", "ADIABATICCOMPRESSEDAIRNOZZLE", "ADIABATICPAN", "ADIABATICRIGIDMEDIA", "ADIABATICULTRASONIC", "ADIABATICWETTEDELEMENT", "ASSISTEDBUTANE", "ASSISTEDELECTRIC", "ASSISTEDNATURALGAS", "ASSISTEDPROPANE", "ASSISTEDSTEAM", "STEAMINJECTION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcHumidifierType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "ADIABATICAIRWASHER", "ADIABATICATOMIZING", "ADIABATICCOMPRESSEDAIRNOZZLE", "ADIABATICPAN", "ADIABATICRIGIDMEDIA", "ADIABATICULTRASONIC", "ADIABATICWETTEDELEMENT", "ASSISTEDBUTANE", "ASSISTEDELECTRIC", "ASSISTEDNATURALGAS", "ASSISTEDPROPANE", "ASSISTEDSTEAM", "STEAMINJECTION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcMedicalDevice", "IfcFlowTerminal", ClassType.Concrete, new[] { "AIRSTATION", "FEEDAIRUNIT", "OXYGENGENERATOR", "OXYGENPLANT", "VACUUMSTATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcMedicalDeviceType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "AIRSTATION", "FEEDAIRUNIT", "OXYGENGENERATOR", "OXYGENPLANT", "VACUUMSTATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPipeFitting", "IfcFlowFitting", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "OBSTRUCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPipeFittingType", "IfcFlowFittingType", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "ENTRY", "EXIT", "JUNCTION", "OBSTRUCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPipeSegment", "IfcFlowSegment", ClassType.Concrete, new[] { "CULVERT", "FLEXIBLESEGMENT", "GUTTER", "RIGIDSEGMENT", "SPOOL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPipeSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "CULVERT", "FLEXIBLESEGMENT", "GUTTER", "RIGIDSEGMENT", "SPOOL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcPump", "IfcFlowMovingDevice", ClassType.Concrete, new[] { "CIRCULATOR", "ENDSUCTION", "SPLITCASE", "SUBMERSIBLEPUMP", "SUMPPUMP", "VERTICALINLINE", "VERTICALTURBINE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcPumpType", "IfcFlowMovingDeviceType", ClassType.Concrete, new[] { "CIRCULATOR", "ENDSUCTION", "SPLITCASE", "SUBMERSIBLEPUMP", "SUMPPUMP", "VERTICALINLINE", "VERTICALTURBINE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSpaceHeater", "IfcFlowTerminal", ClassType.Concrete, new[] { "CONVECTOR", "RADIATOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSpaceHeaterType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "CONVECTOR", "RADIATOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTank", "IfcFlowStorageDevice", ClassType.Concrete, new[] { "BASIN", "BREAKPRESSURE", "EXPANSION", "FEEDANDEXPANSION", "OILRETENTIONTRAY", "PRESSUREVESSEL", "STORAGE", "VESSEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcTankType", "IfcFlowStorageDeviceType", ClassType.Concrete, new[] { "BASIN", "BREAKPRESSURE", "EXPANSION", "FEEDANDEXPANSION", "OILRETENTIONTRAY", "PRESSUREVESSEL", "STORAGE", "VESSEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTubeBundle", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "FINNED", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcTubeBundleType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "FINNED", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcUnitaryEquipment", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "AIRCONDITIONINGUNIT", "AIRHANDLER", "DEHUMIDIFIER", "ROOFTOPUNIT", "SPLITSYSTEM", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcUnitaryEquipmentType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "AIRCONDITIONINGUNIT", "AIRHANDLER", "DEHUMIDIFIER", "ROOFTOPUNIT", "SPLITSYSTEM", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcValve", "IfcFlowController", ClassType.Concrete, new[] { "AIRRELEASE", "ANTIVACUUM", "CHANGEOVER", "CHECK", "COMMISSIONING", "DIVERTING", "DOUBLECHECK", "DOUBLEREGULATING", "DRAWOFFCOCK", "FAUCET", "FLUSHING", "GASCOCK", "GASTAP", "ISOLATING", "MIXING", "PRESSUREREDUCING", "PRESSURERELIEF", "REGULATING", "SAFETYCUTOFF", "STEAMTRAP", "STOPCOCK", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcValveType", "IfcFlowControllerType", ClassType.Concrete, new[] { "AIRRELEASE", "ANTIVACUUM", "CHANGEOVER", "CHECK", "COMMISSIONING", "DIVERTING", "DOUBLECHECK", "DOUBLEREGULATING", "DRAWOFFCOCK", "FAUCET", "FLUSHING", "GASCOCK", "GASTAP", "ISOLATING", "MIXING", "PRESSUREREDUCING", "PRESSURERELIEF", "REGULATING", "SAFETYCUTOFF", "STEAMTRAP", "STOPCOCK", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcVibrationIsolator", "IfcElementComponent", ClassType.Concrete, new[] { "BASE", "COMPRESSION", "SPRING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcVibrationIsolatorType", "IfcElementComponentType", ClassType.Concrete, new[] { "BASE", "COMPRESSION", "SPRING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.HvacDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcArcIndex", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcAxis1Placement", "IfcPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Location", "Axis" }),
			new ClassInfo("IfcPlacement", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Location" }),
			new ClassInfo("IfcAxis2Placement2D", "IfcPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Location", "RefDirection" }),
			new ClassInfo("IfcAxis2Placement3D", "IfcPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Location", "Axis", "RefDirection" }),
			new ClassInfo("IfcAxis2PlacementLinear", "IfcPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Location", "Axis", "RefDirection" }),
			new ClassInfo("IfcBoundaryCurve", "IfcCompositeCurveOnSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Segments", "SelfIntersect" }),
			new ClassInfo("IfcCompositeCurveOnSurface", "IfcCompositeCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Segments", "SelfIntersect" }),
			new ClassInfo("IfcCompositeCurve", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Segments", "SelfIntersect" }),
			new ClassInfo("IfcBoundedCurve", "IfcCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcCurve", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcBoundedSurface", "IfcSurface", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcSurface", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcBSplineCurve", "IfcBoundedCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect" }),
			new ClassInfo("IfcBSplineCurveWithKnots", "IfcBSplineCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect", "KnotMultiplicities", "Knots", "KnotSpec" }),
			new ClassInfo("IfcBSplineSurface", "IfcBoundedSurface", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "UDegree", "VDegree", "ControlPointsList", "SurfaceForm", "UClosed", "VClosed", "SelfIntersect" }),
			new ClassInfo("IfcBSplineSurfaceWithKnots", "IfcBSplineSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "UDegree", "VDegree", "ControlPointsList", "SurfaceForm", "UClosed", "VClosed", "SelfIntersect", "UMultiplicities", "VMultiplicities", "UKnots", "VKnots", "KnotSpec" }),
			new ClassInfo("IfcCartesianPoint", "IfcPoint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Coordinates" }),
			new ClassInfo("IfcPoint", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcCartesianTransformationOperator", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale" }),
			new ClassInfo("IfcCartesianTransformationOperator2D", "IfcCartesianTransformationOperator", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale" }),
			new ClassInfo("IfcCartesianTransformationOperator2DnonUniform", "IfcCartesianTransformationOperator2D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale", "Scale2" }),
			new ClassInfo("IfcCartesianTransformationOperator3D", "IfcCartesianTransformationOperator", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale", "Axis3" }),
			new ClassInfo("IfcCartesianTransformationOperator3DnonUniform", "IfcCartesianTransformationOperator3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Axis1", "Axis2", "LocalOrigin", "Scale", "Axis3", "Scale2", "Scale3" }),
			new ClassInfo("IfcCircle", "IfcConic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "Radius" }),
			new ClassInfo("IfcConic", "IfcCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position" }),
			new ClassInfo("IfcClothoid", "IfcSpiral", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "ClothoidConstant" }),
			new ClassInfo("IfcSpiral", "IfcCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position" }),
			new ClassInfo("IfcCompositeCurveSegment", "IfcSegment", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Transition", "SameSense", "ParentCurve" }),
			new ClassInfo("IfcSegment", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Transition" }),
			new ClassInfo("IfcCosineSpiral", "IfcSpiral", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "CosineTerm", "ConstantTerm" }),
			new ClassInfo("IfcCurveBoundedPlane", "IfcBoundedSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "BasisSurface", "OuterBoundary", "InnerBoundaries" }),
			new ClassInfo("IfcCurveBoundedSurface", "IfcBoundedSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "BasisSurface", "Boundaries", "ImplicitOuter" }),
			new ClassInfo("IfcCurveSegment", "IfcSegment", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Transition", "Placement", "SegmentStart", "SegmentLength", "ParentCurve" }),
			new ClassInfo("IfcCylindricalSurface", "IfcElementarySurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "Radius" }),
			new ClassInfo("IfcElementarySurface", "IfcSurface", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position" }),
			new ClassInfo("IfcDimensionCount", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcDirection", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "DirectionRatios" }),
			new ClassInfo("IfcEllipse", "IfcConic", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "SemiAxis1", "SemiAxis2" }),
			new ClassInfo("IfcGradientCurve", "IfcCompositeCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Segments", "SelfIntersect", "BaseCurve", "EndPoint" }),
			new ClassInfo("IfcIndexedPolyCurve", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Points", "Segments", "SelfIntersect" }),
			new ClassInfo("IfcIntersectionCurve", "IfcSurfaceCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Curve3D", "AssociatedGeometry", "MasterRepresentation" }),
			new ClassInfo("IfcSurfaceCurve", "IfcCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Curve3D", "AssociatedGeometry", "MasterRepresentation" }),
			new ClassInfo("IfcLine", "IfcCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Pnt", "Dir" }),
			new ClassInfo("IfcLineIndex", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "" }),
			new ClassInfo("IfcMappedItem", "IfcRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "MappingSource", "MappingTarget" }),
			new ClassInfo("IfcOffsetCurve", "IfcCurve", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "BasisCurve" }),
			new ClassInfo("IfcOffsetCurve2D", "IfcOffsetCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "BasisCurve", "Distance", "SelfIntersect" }),
			new ClassInfo("IfcOffsetCurve3D", "IfcOffsetCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "BasisCurve", "Distance", "SelfIntersect", "RefDirection" }),
			new ClassInfo("IfcOffsetCurveByDistances", "IfcOffsetCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "BasisCurve", "OffsetValues", "Tag" }),
			new ClassInfo("IfcOuterBoundaryCurve", "IfcBoundaryCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Segments", "SelfIntersect" }),
			new ClassInfo("IfcPcurve", "IfcCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "BasisSurface", "ReferenceCurve" }),
			new ClassInfo("IfcPlane", "IfcElementarySurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position" }),
			new ClassInfo("IfcPointByDistanceExpression", "IfcPoint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "DistanceAlong", "OffsetLateral", "OffsetVertical", "OffsetLongitudinal", "BasisCurve" }),
			new ClassInfo("IfcPointOnCurve", "IfcPoint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "BasisCurve", "PointParameter" }),
			new ClassInfo("IfcPointOnSurface", "IfcPoint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "BasisSurface", "PointParameterU", "PointParameterV" }),
			new ClassInfo("IfcPolyline", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Points" }),
			new ClassInfo("IfcPolynomialCurve", "IfcCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "CoefficientsX", "CoefficientsY", "CoefficientsZ" }),
			new ClassInfo("IfcRationalBSplineCurveWithKnots", "IfcBSplineCurveWithKnots", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Degree", "ControlPointsList", "CurveForm", "ClosedCurve", "SelfIntersect", "KnotMultiplicities", "Knots", "KnotSpec", "WeightsData" }),
			new ClassInfo("IfcRationalBSplineSurfaceWithKnots", "IfcBSplineSurfaceWithKnots", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "UDegree", "VDegree", "ControlPointsList", "SurfaceForm", "UClosed", "VClosed", "SelfIntersect", "UMultiplicities", "VMultiplicities", "UKnots", "VKnots", "KnotSpec", "WeightsData" }),
			new ClassInfo("IfcRectangularTrimmedSurface", "IfcBoundedSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "BasisSurface", "U1", "V1", "U2", "V2", "Usense", "Vsense" }),
			new ClassInfo("IfcReparametrisedCompositeCurveSegment", "IfcCompositeCurveSegment", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Transition", "SameSense", "ParentCurve", "ParamLength" }),
			new ClassInfo("IfcRepresentationMap", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "MappingOrigin", "MappedRepresentation" }),
			new ClassInfo("IfcSeamCurve", "IfcSurfaceCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Curve3D", "AssociatedGeometry", "MasterRepresentation" }),
			new ClassInfo("IfcSecondOrderPolynomialSpiral", "IfcSpiral", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "QuadraticTerm", "LinearTerm", "ConstantTerm" }),
			new ClassInfo("IfcSegmentedReferenceCurve", "IfcCompositeCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Segments", "SelfIntersect", "BaseCurve", "EndPoint" }),
			new ClassInfo("IfcSeventhOrderPolynomialSpiral", "IfcSpiral", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "SepticTerm", "SexticTerm", "QuinticTerm", "QuarticTerm", "CubicTerm", "QuadraticTerm", "LinearTerm", "ConstantTerm" }),
			new ClassInfo("IfcSineSpiral", "IfcSpiral", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "SineTerm", "LinearTerm", "ConstantTerm" }),
			new ClassInfo("IfcSphericalSurface", "IfcElementarySurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "Radius" }),
			new ClassInfo("IfcSurfaceOfLinearExtrusion", "IfcSweptSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "SweptCurve", "Position", "ExtrudedDirection", "Depth" }),
			new ClassInfo("IfcSweptSurface", "IfcSurface", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "SweptCurve", "Position" }),
			new ClassInfo("IfcSurfaceOfRevolution", "IfcSweptSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "SweptCurve", "Position", "AxisPosition" }),
			new ClassInfo("IfcThirdOrderPolynomialSpiral", "IfcSpiral", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "CubicTerm", "QuadraticTerm", "LinearTerm", "ConstantTerm" }),
			new ClassInfo("IfcToroidalSurface", "IfcElementarySurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Position", "MajorRadius", "MinorRadius" }),
			new ClassInfo("IfcTrimmedCurve", "IfcBoundedCurve", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "BasisCurve", "Trim1", "Trim2", "SenseAgreement", "MasterRepresentation" }),
			new ClassInfo("IfcVector", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometryResource", new[] { "Orientation", "Magnitude" }),
			new ClassInfo("IfcAdvancedBrep", "IfcManifoldSolidBrep", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Outer" }),
			new ClassInfo("IfcManifoldSolidBrep", "IfcSolidModel", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Outer" }),
			new ClassInfo("IfcSolidModel", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "" }),
			new ClassInfo("IfcAdvancedBrepWithVoids", "IfcAdvancedBrep", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Outer", "Voids" }),
			new ClassInfo("IfcBlock", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Position", "XLength", "YLength", "ZLength" }),
			new ClassInfo("IfcCsgPrimitive3D", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Position" }),
			new ClassInfo("IfcBooleanClippingResult", "IfcBooleanResult", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Operator", "FirstOperand", "SecondOperand" }),
			new ClassInfo("IfcBooleanResult", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Operator", "FirstOperand", "SecondOperand" }),
			new ClassInfo("IfcBoundingBox", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Corner", "XDim", "YDim", "ZDim" }),
			new ClassInfo("IfcBoxedHalfSpace", "IfcHalfSpaceSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "BaseSurface", "AgreementFlag", "Enclosure" }),
			new ClassInfo("IfcHalfSpaceSolid", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "BaseSurface", "AgreementFlag" }),
			new ClassInfo("IfcCartesianPointList", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "" }),
			new ClassInfo("IfcCartesianPointList2D", "IfcCartesianPointList", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "CoordList", "TagList" }),
			new ClassInfo("IfcCartesianPointList3D", "IfcCartesianPointList", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "CoordList", "TagList" }),
			new ClassInfo("IfcCsgSolid", "IfcSolidModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "TreeRootExpression" }),
			new ClassInfo("IfcDirectrixCurveSweptAreaSolid", "IfcSweptAreaSolid", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "SweptArea", "Position", "Directrix", "StartParam", "EndParam" }),
			new ClassInfo("IfcSweptAreaSolid", "IfcSolidModel", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "SweptArea", "Position" }),
			new ClassInfo("IfcDirectrixDerivedReferenceSweptAreaSolid", "IfcFixedReferenceSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "SweptArea", "Position", "Directrix", "StartParam", "EndParam", "FixedReference" }),
			new ClassInfo("IfcFixedReferenceSweptAreaSolid", "IfcDirectrixCurveSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "SweptArea", "Position", "Directrix", "StartParam", "EndParam", "FixedReference" }),
			new ClassInfo("IfcExtrudedAreaSolid", "IfcSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "SweptArea", "Position", "ExtrudedDirection", "Depth" }),
			new ClassInfo("IfcExtrudedAreaSolidTapered", "IfcExtrudedAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "SweptArea", "Position", "ExtrudedDirection", "Depth", "EndSweptArea" }),
			new ClassInfo("IfcFaceBasedSurfaceModel", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "FbsmFaces" }),
			new ClassInfo("IfcFacetedBrep", "IfcManifoldSolidBrep", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Outer" }),
			new ClassInfo("IfcFacetedBrepWithVoids", "IfcFacetedBrep", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Outer", "Voids" }),
			new ClassInfo("IfcGeometricCurveSet", "IfcGeometricSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Elements" }),
			new ClassInfo("IfcGeometricSet", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Elements" }),
			new ClassInfo("IfcIndexedPolygonalFace", "IfcTessellatedItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "CoordIndex" }),
			new ClassInfo("IfcTessellatedItem", "IfcGeometricRepresentationItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "" }),
			new ClassInfo("IfcIndexedPolygonalFaceWithVoids", "IfcIndexedPolygonalFace", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "CoordIndex", "InnerCoordIndices" }),
			new ClassInfo("IfcPolygonalBoundedHalfSpace", "IfcHalfSpaceSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "BaseSurface", "AgreementFlag", "Position", "PolygonalBoundary" }),
			new ClassInfo("IfcPolygonalFaceSet", "IfcTessellatedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Coordinates", "Closed", "Faces", "PnIndex" }),
			new ClassInfo("IfcTessellatedFaceSet", "IfcTessellatedItem", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Coordinates" }),
			new ClassInfo("IfcRectangularPyramid", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Position", "XLength", "YLength", "Height" }),
			new ClassInfo("IfcRevolvedAreaSolid", "IfcSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "SweptArea", "Position", "Axis", "Angle" }),
			new ClassInfo("IfcRevolvedAreaSolidTapered", "IfcRevolvedAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "SweptArea", "Position", "Axis", "Angle", "EndSweptArea" }),
			new ClassInfo("IfcRightCircularCone", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Position", "Height", "BottomRadius" }),
			new ClassInfo("IfcRightCircularCylinder", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Position", "Height", "Radius" }),
			new ClassInfo("IfcSectionedSolid", "IfcSolidModel", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Directrix", "CrossSections" }),
			new ClassInfo("IfcSectionedSolidHorizontal", "IfcSectionedSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Directrix", "CrossSections", "CrossSectionPositions" }),
			new ClassInfo("IfcSectionedSpine", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "SpineCurve", "CrossSections", "CrossSectionPositions" }),
			new ClassInfo("IfcSectionedSurface", "IfcSurface", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Directrix", "CrossSectionPositions", "CrossSections" }),
			new ClassInfo("IfcShellBasedSurfaceModel", "IfcGeometricRepresentationItem", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "SbsmBoundary" }),
			new ClassInfo("IfcSphere", "IfcCsgPrimitive3D", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Position", "Radius" }),
			new ClassInfo("IfcSurfaceCurveSweptAreaSolid", "IfcDirectrixCurveSweptAreaSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "SweptArea", "Position", "Directrix", "StartParam", "EndParam", "ReferenceSurface" }),
			new ClassInfo("IfcSweptDiskSolid", "IfcSolidModel", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Directrix", "Radius", "InnerRadius", "StartParam", "EndParam" }),
			new ClassInfo("IfcSweptDiskSolidPolygonal", "IfcSweptDiskSolid", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Directrix", "Radius", "InnerRadius", "StartParam", "EndParam", "FilletRadius" }),
			new ClassInfo("IfcTriangulatedFaceSet", "IfcTessellatedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Coordinates", "Normals", "Closed", "CoordIndex", "PnIndex" }),
			new ClassInfo("IfcTriangulatedIrregularNetwork", "IfcTriangulatedFaceSet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricModelResource", new[] { "Coordinates", "Normals", "Closed", "CoordIndex", "PnIndex", "Flags" }),
			new ClassInfo("IfcAlignmentCantSegment", "IfcAlignmentParameterSegment", ClassType.Concrete, new[] { "BLOSSCURVE", "CONSTANTCANT", "COSINECURVE", "HELMERTCURVE", "LINEARTRANSITION", "SINECURVE", "VIENNESEBEND" }, "Ifc4x3.GeometricConstraintResource", new[] { "StartTag", "EndTag", "StartDistAlong", "HorizontalLength", "StartCantLeft", "EndCantLeft", "StartCantRight", "EndCantRight", "PredefinedType" }),
			new ClassInfo("IfcAlignmentParameterSegment", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "StartTag", "EndTag" }),
			new ClassInfo("IfcAlignmentHorizontalSegment", "IfcAlignmentParameterSegment", ClassType.Concrete, new[] { "BLOSSCURVE", "CIRCULARARC", "CLOTHOID", "COSINECURVE", "CUBIC", "HELMERTCURVE", "LINE", "SINECURVE", "VIENNESEBEND" }, "Ifc4x3.GeometricConstraintResource", new[] { "StartTag", "EndTag", "StartPoint", "StartDirection", "StartRadiusOfCurvature", "EndRadiusOfCurvature", "SegmentLength", "GravityCenterLineHeight", "PredefinedType" }),
			new ClassInfo("IfcAlignmentVerticalSegment", "IfcAlignmentParameterSegment", ClassType.Concrete, new[] { "CIRCULARARC", "CLOTHOID", "CONSTANTGRADIENT", "PARABOLICARC" }, "Ifc4x3.GeometricConstraintResource", new[] { "StartTag", "EndTag", "StartDistAlong", "HorizontalLength", "StartHeight", "StartGradient", "EndGradient", "RadiusOfCurvature", "PredefinedType" }),
			new ClassInfo("IfcConnectionCurveGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "CurveOnRelatingElement", "CurveOnRelatedElement" }),
			new ClassInfo("IfcConnectionGeometry", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "" }),
			new ClassInfo("IfcConnectionPointEccentricity", "IfcConnectionPointGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "PointOnRelatingElement", "PointOnRelatedElement", "EccentricityInX", "EccentricityInY", "EccentricityInZ" }),
			new ClassInfo("IfcConnectionPointGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "PointOnRelatingElement", "PointOnRelatedElement" }),
			new ClassInfo("IfcConnectionSurfaceGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "SurfaceOnRelatingElement", "SurfaceOnRelatedElement" }),
			new ClassInfo("IfcConnectionVolumeGeometry", "IfcConnectionGeometry", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "VolumeOnRelatingElement", "VolumeOnRelatedElement" }),
			new ClassInfo("IfcGridAxis", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "AxisTag", "AxisCurve", "SameSense" }),
			new ClassInfo("IfcGridPlacement", "IfcObjectPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "PlacementRelTo", "PlacementLocation", "PlacementRefDirection" }),
			new ClassInfo("IfcObjectPlacement", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "PlacementRelTo" }),
			new ClassInfo("IfcLinearPlacement", "IfcObjectPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "PlacementRelTo", "RelativePlacement", "CartesianPosition" }),
			new ClassInfo("IfcLocalPlacement", "IfcObjectPlacement", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "PlacementRelTo", "RelativePlacement" }),
			new ClassInfo("IfcVirtualGridIntersection", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.GeometricConstraintResource", new[] { "IntersectingAxes", "OffsetDistances" }),
			new ClassInfo("IfcClassification", "IfcExternalInformation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "Source", "Edition", "EditionDate", "Name", "Description", "Specification", "ReferenceTokens" }),
			new ClassInfo("IfcExternalInformation", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "" }),
			new ClassInfo("IfcClassificationReference", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "Location", "Identification", "Name", "ReferencedSource", "Description", "Sort" }),
			new ClassInfo("IfcDocumentInformation", "IfcExternalInformation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "Identification", "Name", "Description", "Location", "Purpose", "IntendedUse", "Scope", "Revision", "DocumentOwner", "Editors", "CreationTime", "LastRevisionTime", "ElectronicFormat", "ValidFrom", "ValidUntil", "Confidentiality", "Status" }),
			new ClassInfo("IfcDocumentInformationRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "Name", "Description", "RelatingDocument", "RelatedDocuments", "RelationshipType" }),
			new ClassInfo("IfcDocumentReference", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "Location", "Identification", "Name", "Description", "ReferencedDocument" }),
			new ClassInfo("IfcExternalReferenceRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "Name", "Description", "RelatingReference", "RelatedResourceObjects" }),
			new ClassInfo("IfcLanguageId", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "" }),
			new ClassInfo("IfcLibraryInformation", "IfcExternalInformation", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "Name", "Version", "Publisher", "VersionDate", "Location", "Description" }),
			new ClassInfo("IfcLibraryReference", "IfcExternalReference", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ExternalReferenceResource", new[] { "Location", "Identification", "Name", "Description", "Language", "ReferencedLibrary" }),
			new ClassInfo("IfcAudioVisualAppliance", "IfcFlowTerminal", ClassType.Concrete, new[] { "AMPLIFIER", "CAMERA", "COMMUNICATIONTERMINAL", "DISPLAY", "MICROPHONE", "PLAYER", "PROJECTOR", "RECEIVER", "RECORDINGEQUIPMENT", "SPEAKER", "SWITCHER", "TELEPHONE", "TUNER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcAudioVisualApplianceType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "AMPLIFIER", "CAMERA", "COMMUNICATIONTERMINAL", "DISPLAY", "MICROPHONE", "PLAYER", "PROJECTOR", "RECEIVER", "RECORDINGEQUIPMENT", "SPEAKER", "SWITCHER", "TELEPHONE", "TUNER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCableCarrierFitting", "IfcFlowFitting", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "CROSS", "JUNCTION", "REDUCER", "TEE", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCableCarrierFittingType", "IfcFlowFittingType", ClassType.Concrete, new[] { "BEND", "CONNECTOR", "CROSS", "JUNCTION", "REDUCER", "TEE", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCableCarrierSegment", "IfcFlowSegment", ClassType.Concrete, new[] { "CABLEBRACKET", "CABLELADDERSEGMENT", "CABLETRAYSEGMENT", "CABLETRUNKINGSEGMENT", "CATENARYWIRE", "CONDUITSEGMENT", "DROPPER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCableCarrierSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "CABLEBRACKET", "CABLELADDERSEGMENT", "CABLETRAYSEGMENT", "CABLETRUNKINGSEGMENT", "CATENARYWIRE", "CONDUITSEGMENT", "DROPPER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCableFitting", "IfcFlowFitting", ClassType.Concrete, new[] { "CONNECTOR", "ENTRY", "EXIT", "FANOUT", "JUNCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCableFittingType", "IfcFlowFittingType", ClassType.Concrete, new[] { "CONNECTOR", "ENTRY", "EXIT", "FANOUT", "JUNCTION", "TRANSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCableSegment", "IfcFlowSegment", ClassType.Concrete, new[] { "BUSBARSEGMENT", "CABLESEGMENT", "CONDUCTORSEGMENT", "CONTACTWIRESEGMENT", "CORESEGMENT", "FIBERSEGMENT", "FIBERTUBE", "OPTICALCABLESEGMENT", "STITCHWIRE", "WIREPAIRSEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCableSegmentType", "IfcFlowSegmentType", ClassType.Concrete, new[] { "BUSBARSEGMENT", "CABLESEGMENT", "CONDUCTORSEGMENT", "CONTACTWIRESEGMENT", "CORESEGMENT", "FIBERSEGMENT", "FIBERTUBE", "OPTICALCABLESEGMENT", "STITCHWIRE", "WIREPAIRSEGMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcCommunicationsAppliance", "IfcFlowTerminal", ClassType.Concrete, new[] { "ANTENNA", "AUTOMATON", "COMPUTER", "FAX", "GATEWAY", "INTELLIGENTPERIPHERAL", "IPNETWORKEQUIPMENT", "LINESIDEELECTRONICUNIT", "MODEM", "NETWORKAPPLIANCE", "NETWORKBRIDGE", "NETWORKHUB", "OPTICALLINETERMINAL", "OPTICALNETWORKUNIT", "PRINTER", "RADIOBLOCKCENTER", "REPEATER", "ROUTER", "SCANNER", "TELECOMMAND", "TELEPHONYEXCHANGE", "TRANSITIONCOMPONENT", "TRANSPONDER", "TRANSPORTEQUIPMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcCommunicationsApplianceType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "ANTENNA", "AUTOMATON", "COMPUTER", "FAX", "GATEWAY", "INTELLIGENTPERIPHERAL", "IPNETWORKEQUIPMENT", "LINESIDEELECTRONICUNIT", "MODEM", "NETWORKAPPLIANCE", "NETWORKBRIDGE", "NETWORKHUB", "OPTICALLINETERMINAL", "OPTICALNETWORKUNIT", "PRINTER", "RADIOBLOCKCENTER", "REPEATER", "ROUTER", "SCANNER", "TELECOMMAND", "TELEPHONYEXCHANGE", "TRANSITIONCOMPONENT", "TRANSPONDER", "TRANSPORTEQUIPMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDistributionBoard", "IfcFlowController", ClassType.Concrete, new[] { "CONSUMERUNIT", "DISPATCHINGBOARD", "DISTRIBUTIONBOARD", "DISTRIBUTIONFRAME", "MOTORCONTROLCENTRE", "SWITCHBOARD", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcDistributionBoardType", "IfcFlowControllerType", ClassType.Concrete, new[] { "CONSUMERUNIT", "DISPATCHINGBOARD", "DISTRIBUTIONBOARD", "DISTRIBUTIONFRAME", "MOTORCONTROLCENTRE", "SWITCHBOARD", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricAppliance", "IfcFlowTerminal", ClassType.Concrete, new[] { "DISHWASHER", "ELECTRICCOOKER", "FREESTANDINGELECTRICHEATER", "FREESTANDINGFAN", "FREESTANDINGWATERCOOLER", "FREESTANDINGWATERHEATER", "FREEZER", "FRIDGE_FREEZER", "HANDDRYER", "KITCHENMACHINE", "MICROWAVE", "PHOTOCOPIER", "REFRIGERATOR", "TUMBLEDRYER", "VENDINGMACHINE", "WASHINGMACHINE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricApplianceType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "DISHWASHER", "ELECTRICCOOKER", "FREESTANDINGELECTRICHEATER", "FREESTANDINGFAN", "FREESTANDINGWATERCOOLER", "FREESTANDINGWATERHEATER", "FREEZER", "FRIDGE_FREEZER", "HANDDRYER", "KITCHENMACHINE", "MICROWAVE", "PHOTOCOPIER", "REFRIGERATOR", "TUMBLEDRYER", "VENDINGMACHINE", "WASHINGMACHINE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricDistributionBoard", "IfcFlowController", ClassType.Concrete, new[] { "CONSUMERUNIT", "DISTRIBUTIONBOARD", "MOTORCONTROLCENTRE", "SWITCHBOARD", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricDistributionBoardType", "IfcFlowControllerType", ClassType.Concrete, new[] { "CONSUMERUNIT", "DISTRIBUTIONBOARD", "MOTORCONTROLCENTRE", "SWITCHBOARD", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricFlowStorageDevice", "IfcFlowStorageDevice", ClassType.Concrete, new[] { "BATTERY", "CAPACITOR", "CAPACITORBANK", "COMPENSATOR", "HARMONICFILTER", "INDUCTOR", "INDUCTORBANK", "RECHARGER", "UPS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricFlowStorageDeviceType", "IfcFlowStorageDeviceType", ClassType.Concrete, new[] { "BATTERY", "CAPACITOR", "CAPACITORBANK", "COMPENSATOR", "HARMONICFILTER", "INDUCTOR", "INDUCTORBANK", "RECHARGER", "UPS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricFlowTreatmentDevice", "IfcFlowTreatmentDevice", ClassType.Concrete, new[] { "ELECTRONICFILTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricFlowTreatmentDeviceType", "IfcFlowTreatmentDeviceType", ClassType.Concrete, new[] { "ELECTRONICFILTER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricGenerator", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "CHP", "ENGINEGENERATOR", "STANDALONE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricGeneratorType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "CHP", "ENGINEGENERATOR", "STANDALONE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricMotor", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "DC", "INDUCTION", "POLYPHASE", "RELUCTANCESYNCHRONOUS", "SYNCHRONOUS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricMotorType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "DC", "INDUCTION", "POLYPHASE", "RELUCTANCESYNCHRONOUS", "SYNCHRONOUS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcElectricTimeControl", "IfcFlowController", ClassType.Concrete, new[] { "RELAY", "TIMECLOCK", "TIMEDELAY", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcElectricTimeControlType", "IfcFlowControllerType", ClassType.Concrete, new[] { "RELAY", "TIMECLOCK", "TIMEDELAY", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcJunctionBox", "IfcFlowFitting", ClassType.Concrete, new[] { "DATA", "POWER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcJunctionBoxType", "IfcFlowFittingType", ClassType.Concrete, new[] { "DATA", "POWER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcLamp", "IfcFlowTerminal", ClassType.Concrete, new[] { "COMPACTFLUORESCENT", "FLUORESCENT", "HALOGEN", "HIGHPRESSUREMERCURY", "HIGHPRESSURESODIUM", "LED", "METALHALIDE", "OLED", "TUNGSTENFILAMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcLampType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "COMPACTFLUORESCENT", "FLUORESCENT", "HALOGEN", "HIGHPRESSUREMERCURY", "HIGHPRESSURESODIUM", "LED", "METALHALIDE", "OLED", "TUNGSTENFILAMENT", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcLightFixture", "IfcFlowTerminal", ClassType.Concrete, new[] { "DIRECTIONSOURCE", "POINTSOURCE", "SECURITYLIGHTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcLightFixtureType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "DIRECTIONSOURCE", "POINTSOURCE", "SECURITYLIGHTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcMobileTelecommunicationsAppliance", "IfcFlowTerminal", ClassType.Concrete, new[] { "ACCESSPOINT", "BASEBANDUNIT", "BASETRANSCEIVERSTATION", "E_UTRAN_NODE_B", "GATEWAY_GPRS_SUPPORT_NODE", "MASTERUNIT", "MOBILESWITCHINGCENTER", "MSCSERVER", "PACKETCONTROLUNIT", "REMOTERADIOUNIT", "REMOTEUNIT", "SERVICE_GPRS_SUPPORT_NODE", "SUBSCRIBERSERVER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcMobileTelecommunicationsApplianceType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "ACCESSPOINT", "BASEBANDUNIT", "BASETRANSCEIVERSTATION", "E_UTRAN_NODE_B", "GATEWAY_GPRS_SUPPORT_NODE", "MASTERUNIT", "MOBILESWITCHINGCENTER", "MSCSERVER", "PACKETCONTROLUNIT", "REMOTERADIOUNIT", "REMOTEUNIT", "SERVICE_GPRS_SUPPORT_NODE", "SUBSCRIBERSERVER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcMotorConnection", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "BELTDRIVE", "COUPLING", "DIRECTDRIVE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcMotorConnectionType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "BELTDRIVE", "COUPLING", "DIRECTDRIVE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcOutlet", "IfcFlowTerminal", ClassType.Concrete, new[] { "AUDIOVISUALOUTLET", "COMMUNICATIONSOUTLET", "DATAOUTLET", "POWEROUTLET", "TELEPHONEOUTLET", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcOutletType", "IfcFlowTerminalType", ClassType.Concrete, new[] { "AUDIOVISUALOUTLET", "COMMUNICATIONSOUTLET", "DATAOUTLET", "POWEROUTLET", "TELEPHONEOUTLET", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcProtectiveDevice", "IfcFlowController", ClassType.Concrete, new[] { "ANTI_ARCING_DEVICE", "CIRCUITBREAKER", "EARTHINGSWITCH", "EARTHLEAKAGECIRCUITBREAKER", "FUSEDISCONNECTOR", "RESIDUALCURRENTCIRCUITBREAKER", "RESIDUALCURRENTSWITCH", "SPARKGAP", "VARISTOR", "VOLTAGELIMITER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcProtectiveDeviceTrippingUnit", "IfcDistributionControlElement", ClassType.Concrete, new[] { "ELECTROMAGNETIC", "ELECTRONIC", "RESIDUALCURRENT", "THERMAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcProtectiveDeviceTrippingUnitType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "ELECTROMAGNETIC", "ELECTRONIC", "RESIDUALCURRENT", "THERMAL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcProtectiveDeviceType", "IfcFlowControllerType", ClassType.Concrete, new[] { "ANTI_ARCING_DEVICE", "CIRCUITBREAKER", "EARTHINGSWITCH", "EARTHLEAKAGECIRCUITBREAKER", "FUSEDISCONNECTOR", "RESIDUALCURRENTCIRCUITBREAKER", "RESIDUALCURRENTSWITCH", "SPARKGAP", "VARISTOR", "VOLTAGELIMITER", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSolarDevice", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "SOLARCOLLECTOR", "SOLARPANEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSolarDeviceType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "SOLARCOLLECTOR", "SOLARPANEL", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSwitchingDevice", "IfcFlowController", ClassType.Concrete, new[] { "CONTACTOR", "DIMMERSWITCH", "EMERGENCYSTOP", "KEYPAD", "MOMENTARYSWITCH", "RELAY", "SELECTORSWITCH", "STARTER", "START_AND_STOP_EQUIPMENT", "SWITCHDISCONNECTOR", "TOGGLESWITCH", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSwitchingDeviceType", "IfcFlowControllerType", ClassType.Concrete, new[] { "CONTACTOR", "DIMMERSWITCH", "EMERGENCYSTOP", "KEYPAD", "MOMENTARYSWITCH", "RELAY", "SELECTORSWITCH", "STARTER", "START_AND_STOP_EQUIPMENT", "SWITCHDISCONNECTOR", "TOGGLESWITCH", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcTransformer", "IfcEnergyConversionDevice", ClassType.Concrete, new[] { "CHOPPER", "COMBINED", "CURRENT", "FREQUENCY", "INVERTER", "RECTIFIER", "VOLTAGE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcTransformerType", "IfcEnergyConversionDeviceType", ClassType.Concrete, new[] { "CHOPPER", "COMBINED", "CURRENT", "FREQUENCY", "INVERTER", "RECTIFIER", "VOLTAGE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ElectricalDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDate", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcDateTime", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcDayInMonthNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcDayInWeekNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcDuration", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcEventTime", "IfcSchedulingTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "ActualDate", "EarlyDate", "LateDate", "ScheduleDate" }),
			new ClassInfo("IfcSchedulingTime", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin" }),
			new ClassInfo("IfcIrregularTimeSeries", "IfcTimeSeries", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit", "Values" }),
			new ClassInfo("IfcTimeSeries", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit" }),
			new ClassInfo("IfcIrregularTimeSeriesValue", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "TimeStamp", "ListValues" }),
			new ClassInfo("IfcLagTime", "IfcSchedulingTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "LagValue", "DurationType" }),
			new ClassInfo("IfcMonthInYearNumber", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcRecurrencePattern", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "RecurrenceType", "DayComponent", "WeekdayComponent", "MonthComponent", "Position", "Interval", "Occurrences", "TimePeriods" }),
			new ClassInfo("IfcRegularTimeSeries", "IfcTimeSeries", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "Name", "Description", "StartTime", "EndTime", "TimeSeriesDataType", "DataOrigin", "UserDefinedDataOrigin", "Unit", "TimeStep", "Values" }),
			new ClassInfo("IfcResourceTime", "IfcSchedulingTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "ScheduleWork", "ScheduleUsage", "ScheduleStart", "ScheduleFinish", "ScheduleContour", "LevelingDelay", "IsOverAllocated", "StatusTime", "ActualWork", "ActualUsage", "ActualStart", "ActualFinish", "RemainingWork", "RemainingUsage", "Completion" }),
			new ClassInfo("IfcTaskTime", "IfcSchedulingTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "DurationType", "ScheduleDuration", "ScheduleStart", "ScheduleFinish", "EarlyStart", "EarlyFinish", "LateStart", "LateFinish", "FreeFloat", "TotalFloat", "IsCritical", "StatusTime", "ActualDuration", "ActualStart", "ActualFinish", "RemainingTime", "Completion" }),
			new ClassInfo("IfcTaskTimeRecurring", "IfcTaskTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "DurationType", "ScheduleDuration", "ScheduleStart", "ScheduleFinish", "EarlyStart", "EarlyFinish", "LateStart", "LateFinish", "FreeFloat", "TotalFloat", "IsCritical", "StatusTime", "ActualDuration", "ActualStart", "ActualFinish", "RemainingTime", "Completion", "Recurrence" }),
			new ClassInfo("IfcTime", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcTimePeriod", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "StartTime", "EndTime" }),
			new ClassInfo("IfcTimeSeriesValue", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "ListValues" }),
			new ClassInfo("IfcTimeStamp", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "" }),
			new ClassInfo("IfcWorkTime", "IfcSchedulingTime", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.DateTimeResource", new[] { "Name", "DataOrigin", "UserDefinedDataOrigin", "RecurrencePattern", "StartDate", "FinishDate" }),
			new ClassInfo("IfcAppliedValue", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.CostResource", new[] { "Name", "Description", "AppliedValue", "UnitBasis", "ApplicableDate", "FixedUntilDate", "Category", "Condition", "ArithmeticOperator", "Components" }),
			new ClassInfo("IfcCostValue", "IfcAppliedValue", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.CostResource", new[] { "Name", "Description", "AppliedValue", "UnitBasis", "ApplicableDate", "FixedUntilDate", "Category", "Condition", "ArithmeticOperator", "Components" }),
			new ClassInfo("IfcCurrencyRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.CostResource", new[] { "Name", "Description", "RelatingMonetaryUnit", "RelatedMonetaryUnit", "ExchangeRate", "RateDateTime", "RateSource" }),
			new ClassInfo("IfcPerformanceHistory", "IfcControl", ClassType.Concrete, new[] { "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ControlExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LifeCyclePhase", "PredefinedType" }),
			new ClassInfo("IfcRelAssociatesApproval", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ControlExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "RelatingApproval" }),
			new ClassInfo("IfcRelAssociatesConstraint", "IfcRelAssociates", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ControlExtension", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "RelatedObjects", "Intent", "RelatingConstraint" }),
			new ClassInfo("IfcConstructionEquipmentResource", "IfcConstructionResource", ClassType.Concrete, new[] { "DEMOLISHING", "EARTHMOVING", "ERECTING", "HEATING", "LIGHTING", "PAVING", "PUMPING", "TRANSPORTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstructionResource", "IfcResource", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity" }),
			new ClassInfo("IfcConstructionEquipmentResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "DEMOLISHING", "EARTHMOVING", "ERECTING", "HEATING", "LIGHTING", "PAVING", "PUMPING", "TRANSPORTING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstructionResourceType", "IfcTypeResource", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity" }),
			new ClassInfo("IfcConstructionMaterialResource", "IfcConstructionResource", ClassType.Concrete, new[] { "AGGREGATES", "CONCRETE", "DRYWALL", "FUEL", "GYPSUM", "MASONRY", "METAL", "PLASTIC", "WOOD", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstructionMaterialResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "AGGREGATES", "CONCRETE", "DRYWALL", "FUEL", "GYPSUM", "MASONRY", "METAL", "PLASTIC", "WOOD", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstructionProductResource", "IfcConstructionResource", ClassType.Concrete, new[] { "ASSEMBLY", "FORMWORK", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstructionProductResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "ASSEMBLY", "FORMWORK", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcCrewResource", "IfcConstructionResource", ClassType.Concrete, new[] { "OFFICE", "SITE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcCrewResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "OFFICE", "SITE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcLaborResource", "IfcConstructionResource", ClassType.Concrete, new[] { "ADMINISTRATION", "CARPENTRY", "CLEANING", "CONCRETE", "DRYWALL", "ELECTRIC", "FINISHING", "FLOORING", "GENERAL", "HVAC", "LANDSCAPING", "MASONRY", "PAINTING", "PAVING", "PLUMBING", "ROOFING", "SITEGRADING", "STEELWORK", "SURVEYING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcLaborResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "ADMINISTRATION", "CARPENTRY", "CLEANING", "CONCRETE", "DRYWALL", "ELECTRIC", "FINISHING", "FLOORING", "GENERAL", "HVAC", "LANDSCAPING", "MASONRY", "PAINTING", "PAVING", "PLUMBING", "ROOFING", "SITEGRADING", "STEELWORK", "SURVEYING", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcSubContractResource", "IfcConstructionResource", ClassType.Concrete, new[] { "PURCHASE", "WORK", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "Identification", "LongDescription", "Usage", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcSubContractResourceType", "IfcConstructionResourceType", ClassType.Concrete, new[] { "PURCHASE", "WORK", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.ConstructionMgmtDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "Identification", "LongDescription", "ResourceType", "BaseCosts", "BaseQuantity", "PredefinedType" }),
			new ClassInfo("IfcConstraint", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ConstraintResource", new[] { "Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade" }),
			new ClassInfo("IfcMetric", "IfcConstraint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ConstraintResource", new[] { "Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade", "Benchmark", "ValueSource", "DataValue", "ReferencePath" }),
			new ClassInfo("IfcObjective", "IfcConstraint", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ConstraintResource", new[] { "Name", "Description", "ConstraintGrade", "ConstraintSource", "CreatingActor", "CreationTime", "UserDefinedGrade", "BenchmarkValues", "LogicalAggregator", "ObjectiveQualifier", "UserDefinedQualifier" }),
			new ClassInfo("IfcReference", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ConstraintResource", new[] { "TypeIdentifier", "AttributeIdentifier", "InstanceName", "ListPositions", "InnerReference" }),
			new ClassInfo("IfcResourceConstraintRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ConstraintResource", new[] { "Name", "Description", "RelatingConstraint", "RelatedResourceObjects" }),
			new ClassInfo("IfcActuator", "IfcDistributionControlElement", ClassType.Concrete, new[] { "ELECTRICACTUATOR", "HANDOPERATEDACTUATOR", "HYDRAULICACTUATOR", "PNEUMATICACTUATOR", "THERMOSTATICACTUATOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcActuatorType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "ELECTRICACTUATOR", "HANDOPERATEDACTUATOR", "HYDRAULICACTUATOR", "PNEUMATICACTUATOR", "THERMOSTATICACTUATOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcAlarm", "IfcDistributionControlElement", ClassType.Concrete, new[] { "BELL", "BREAKGLASSBUTTON", "LIGHT", "MANUALPULLBOX", "RAILWAYCROCODILE", "RAILWAYDETONATOR", "SIREN", "WHISTLE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcAlarmType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "BELL", "BREAKGLASSBUTTON", "LIGHT", "MANUALPULLBOX", "RAILWAYCROCODILE", "RAILWAYDETONATOR", "SIREN", "WHISTLE", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcController", "IfcDistributionControlElement", ClassType.Concrete, new[] { "FLOATING", "MULTIPOSITION", "PROGRAMMABLE", "PROPORTIONAL", "TWOPOSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcControllerType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "FLOATING", "MULTIPOSITION", "PROGRAMMABLE", "PROPORTIONAL", "TWOPOSITION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcFlowInstrument", "IfcDistributionControlElement", ClassType.Concrete, new[] { "AMMETER", "COMBINED", "FREQUENCYMETER", "PHASEANGLEMETER", "POWERFACTORMETER", "PRESSUREGAUGE", "THERMOMETER", "VOLTMETER", "VOLTMETER_PEAK", "VOLTMETER_RMS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcFlowInstrumentType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "AMMETER", "COMBINED", "FREQUENCYMETER", "PHASEANGLEMETER", "POWERFACTORMETER", "PRESSUREGAUGE", "THERMOMETER", "VOLTMETER", "VOLTMETER_PEAK", "VOLTMETER_RMS", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcSensor", "IfcDistributionControlElement", ClassType.Concrete, new[] { "CO2SENSOR", "CONDUCTANCESENSOR", "CONTACTSENSOR", "COSENSOR", "EARTHQUAKESENSOR", "FIRESENSOR", "FLOWSENSOR", "FOREIGNOBJECTDETECTIONSENSOR", "FROSTSENSOR", "GASSENSOR", "HEATSENSOR", "HUMIDITYSENSOR", "IDENTIFIERSENSOR", "IONCONCENTRATIONSENSOR", "LEVELSENSOR", "LIGHTSENSOR", "MOISTURESENSOR", "MOVEMENTSENSOR", "OBSTACLESENSOR", "PHSENSOR", "PRESSURESENSOR", "RADIATIONSENSOR", "RADIOACTIVITYSENSOR", "RAINSENSOR", "SMOKESENSOR", "SNOWDEPTHSENSOR", "SOUNDSENSOR", "TEMPERATURESENSOR", "TRAINSENSOR", "TURNOUTCLOSURESENSOR", "WHEELSENSOR", "WINDSENSOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcSensorType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "CO2SENSOR", "CONDUCTANCESENSOR", "CONTACTSENSOR", "COSENSOR", "EARTHQUAKESENSOR", "FIRESENSOR", "FLOWSENSOR", "FOREIGNOBJECTDETECTIONSENSOR", "FROSTSENSOR", "GASSENSOR", "HEATSENSOR", "HUMIDITYSENSOR", "IDENTIFIERSENSOR", "IONCONCENTRATIONSENSOR", "LEVELSENSOR", "LIGHTSENSOR", "MOISTURESENSOR", "MOVEMENTSENSOR", "OBSTACLESENSOR", "PHSENSOR", "PRESSURESENSOR", "RADIATIONSENSOR", "RADIOACTIVITYSENSOR", "RAINSENSOR", "SMOKESENSOR", "SNOWDEPTHSENSOR", "SOUNDSENSOR", "TEMPERATURESENSOR", "TRAINSENSOR", "TURNOUTCLOSURESENSOR", "WHEELSENSOR", "WINDSENSOR", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcUnitaryControlElement", "IfcDistributionControlElement", ClassType.Concrete, new[] { "ALARMPANEL", "BASESTATIONCONTROLLER", "COMBINED", "CONTROLPANEL", "GASDETECTIONPANEL", "HUMIDISTAT", "INDICATORPANEL", "MIMICPANEL", "THERMOSTAT", "WEATHERSTATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ObjectType", "ObjectPlacement", "Representation", "Tag", "PredefinedType" }),
			new ClassInfo("IfcUnitaryControlElementType", "IfcDistributionControlElementType", ClassType.Concrete, new[] { "ALARMPANEL", "BASESTATIONCONTROLLER", "COMBINED", "CONTROLPANEL", "GASDETECTIONPANEL", "HUMIDISTAT", "INDICATORPANEL", "MIMICPANEL", "THERMOSTAT", "WEATHERSTATION", "USERDEFINED", "NOTDEFINED" }, "Ifc4x3.BuildingControlsDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "ApplicableOccurrence", "HasPropertySets", "RepresentationMaps", "Tag", "ElementType", "PredefinedType" }),
			new ClassInfo("IfcDoorLiningProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "LiningDepth", "LiningThickness", "ThresholdDepth", "ThresholdThickness", "TransomThickness", "TransomOffset", "LiningOffset", "ThresholdOffset", "CasingThickness", "CasingDepth", "ShapeAspectStyle", "LiningToPanelOffsetX", "LiningToPanelOffsetY" }),
			new ClassInfo("IfcDoorPanelProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "PanelDepth", "PanelOperation", "PanelWidth", "PanelPosition", "ShapeAspectStyle" }),
			new ClassInfo("IfcPermeableCoveringProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "OperationType", "PanelPosition", "FrameDepth", "FrameThickness", "ShapeAspectStyle" }),
			new ClassInfo("IfcWindowLiningProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "LiningDepth", "LiningThickness", "TransomThickness", "MullionThickness", "FirstTransomOffset", "SecondTransomOffset", "FirstMullionOffset", "SecondMullionOffset", "ShapeAspectStyle", "LiningOffset", "LiningToPanelOffsetX", "LiningToPanelOffsetY" }),
			new ClassInfo("IfcWindowPanelProperties", "IfcPreDefinedPropertySet", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ArchitectureDomain", new[] { "GlobalId", "OwnerHistory", "Name", "Description", "OperationType", "PanelPosition", "FrameDepth", "FrameThickness", "ShapeAspectStyle" }),
			new ClassInfo("IfcApproval", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ApprovalResource", new[] { "Identifier", "Name", "Description", "TimeOfApproval", "Status", "Level", "Qualifier", "RequestingApproval", "GivingApproval" }),
			new ClassInfo("IfcApprovalRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ApprovalResource", new[] { "Name", "Description", "RelatingApproval", "RelatedApprovals" }),
			new ClassInfo("IfcResourceApprovalRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ApprovalResource", new[] { "Name", "Description", "RelatedResourceObjects", "RelatingApproval" }),
			new ClassInfo("IfcActorRole", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ActorResource", new[] { "Role", "UserDefinedRole", "Description" }),
			new ClassInfo("IfcAddress", "", ClassType.Abstract, Enumerable.Empty<string>(), "Ifc4x3.ActorResource", new[] { "Purpose", "Description", "UserDefinedPurpose" }),
			new ClassInfo("IfcOrganization", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ActorResource", new[] { "Identification", "Name", "Description", "Roles", "Addresses" }),
			new ClassInfo("IfcOrganizationRelationship", "IfcResourceLevelRelationship", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ActorResource", new[] { "Name", "Description", "RelatingOrganization", "RelatedOrganizations" }),
			new ClassInfo("IfcPerson", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ActorResource", new[] { "Identification", "FamilyName", "GivenName", "MiddleNames", "PrefixTitles", "SuffixTitles", "Roles", "Addresses" }),
			new ClassInfo("IfcPersonAndOrganization", "", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ActorResource", new[] { "ThePerson", "TheOrganization", "Roles" }),
			new ClassInfo("IfcPostalAddress", "IfcAddress", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ActorResource", new[] { "Purpose", "Description", "UserDefinedPurpose", "InternalLocation", "AddressLines", "PostalBox", "Town", "Region", "PostalCode", "Country" }),
			new ClassInfo("IfcTelecomAddress", "IfcAddress", ClassType.Concrete, Enumerable.Empty<string>(), "Ifc4x3.ActorResource", new[] { "Purpose", "Description", "UserDefinedPurpose", "TelephoneNumbers", "FacsimileNumbers", "PagerNumber", "ElectronicMailAddresses", "WWWHomePageURL", "MessagingIDs" }),
		};
		return schema;
	}
}