// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool Xbim.CodeGeneration 
//  
//     Changes to this file may cause incorrect behaviour and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using Xbim.Common.Step21;
using Xbim.Ifc4.SharedMgmtElements;
using Xbim.Ifc4.Kernel;
using Xbim.Ifc4.ActorResource;
using Xbim.Ifc4.BuildingControlsDomain;
using Xbim.Ifc4.GeometricModelResource;
using Xbim.Ifc4.TopologyResource;
using Xbim.Ifc4.HvacDomain;
using Xbim.Ifc4.ProductExtension;
using Xbim.Ifc4.PresentationDefinitionResource;
using Xbim.Ifc4.UtilityResource;
using Xbim.Ifc4.CostResource;
using Xbim.Ifc4.ApprovalResource;
using Xbim.Ifc4.ProfileResource;
using Xbim.Ifc4.SharedFacilitiesElements;
using Xbim.Ifc4.ElectricalDomain;
using Xbim.Ifc4.GeometryResource;
using Xbim.Ifc4.SharedBldgElements;
using Xbim.Ifc4.PresentationAppearanceResource;
using Xbim.Ifc4.StructuralLoadResource;
using Xbim.Ifc4.SharedComponentElements;
using Xbim.Ifc4.ExternalReferenceResource;
using Xbim.Ifc4.PropertyResource;
using Xbim.Ifc4.GeometricConstraintResource;
using Xbim.Ifc4.ConstructionMgmtDomain;
using Xbim.Ifc4.MeasureResource;
using Xbim.Ifc4.SharedBldgServiceElements;
using Xbim.Ifc4.ArchitectureDomain;
using Xbim.Ifc4.ProcessExtension;
using Xbim.Ifc4.DateTimeResource;
using Xbim.Ifc4.PlumbingFireProtectionDomain;
using Xbim.Ifc4.StructuralElementsDomain;
using Xbim.Ifc4.RepresentationResource;
using Xbim.Ifc4.PresentationOrganizationResource;
using Xbim.Ifc4.MaterialResource;
using Xbim.Ifc4.ConstraintResource;
using Xbim.Ifc4.ControlExtension;
using Xbim.Ifc4.QuantityResource;
using Xbim.Ifc4.StructuralAnalysisDomain;
using Xbim.Common;

namespace Xbim.Ifc4
{
	public sealed class EntityFactoryIfc4 : IEntityFactory
	{
		private static readonly System.Reflection.Assembly _assembly;
		
		static EntityFactoryIfc4()
		{
			_assembly = typeof(EntityFactoryIfc4).Assembly;
		}

		public T New<T>(IModel model, int entityLabel, bool activated) where T: IInstantiableEntity
		{
			return (T)New(model, typeof(T), entityLabel, activated);
		}

		public T New<T>(IModel model, Action<T> init, int entityLabel, bool activated) where T: IInstantiableEntity
		{
			var o = New<T>(model, entityLabel, activated);
			if (init != null)
				init(o);
			return o;
		}

		public IInstantiableEntity New(IModel model, Type t, int entityLabel, bool activated)
		{
			//check that the type is from this assembly
			if(t.Assembly != _assembly)
				throw new Exception("This factory only creates types from its assembly");

			return New(model, t.Name, entityLabel, activated);
		}

		public IInstantiableEntity New(IModel model, string typeName, int entityLabel, bool activated)
		{
			if (model == null || string.IsNullOrWhiteSpace(typeName) || entityLabel < 0)
				throw new ArgumentNullException();

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


			switch(typeId)
			{
				case 516: return new IfcActionRequest ( model, entityLabel, activated );
				case 250: return new IfcActor ( model, entityLabel, activated );
				case 595: return new IfcActorRole ( model, entityLabel, activated );
				case 1091: return new IfcActuator ( model, entityLabel, activated );
				case 485: return new IfcActuatorType ( model, entityLabel, activated );
				case 1092: return new IfcAdvancedBrep ( model, entityLabel, activated );
				case 1093: return new IfcAdvancedBrepWithVoids ( model, entityLabel, activated );
				case 1094: return new IfcAdvancedFace ( model, entityLabel, activated );
				case 1095: return new IfcAirTerminal ( model, entityLabel, activated );
				case 1096: return new IfcAirTerminalBox ( model, entityLabel, activated );
				case 332: return new IfcAirTerminalBoxType ( model, entityLabel, activated );
				case 271: return new IfcAirTerminalType ( model, entityLabel, activated );
				case 1097: return new IfcAirToAirHeatRecovery ( model, entityLabel, activated );
				case 588: return new IfcAirToAirHeatRecoveryType ( model, entityLabel, activated );
				case 1098: return new IfcAlarm ( model, entityLabel, activated );
				case 275: return new IfcAlarmType ( model, entityLabel, activated );
				case 634: return new IfcAnnotation ( model, entityLabel, activated );
				case 173: return new IfcAnnotationFillArea ( model, entityLabel, activated );
				case 627: return new IfcApplication ( model, entityLabel, activated );
				case 79: return new IfcAppliedValue ( model, entityLabel, activated );
				case 626: return new IfcApproval ( model, entityLabel, activated );
				case 552: return new IfcApprovalRelationship ( model, entityLabel, activated );
				case 115: return new IfcArbitraryClosedProfileDef ( model, entityLabel, activated );
				case 219: return new IfcArbitraryOpenProfileDef ( model, entityLabel, activated );
				case 116: return new IfcArbitraryProfileDefWithVoids ( model, entityLabel, activated );
				case 767: return new IfcAsset ( model, entityLabel, activated );
				case 672: return new IfcAsymmetricIShapeProfileDef ( model, entityLabel, activated );
				case 1099: return new IfcAudioVisualAppliance ( model, entityLabel, activated );
				case 1100: return new IfcAudioVisualApplianceType ( model, entityLabel, activated );
				case 280: return new IfcAxis1Placement ( model, entityLabel, activated );
				case 411: return new IfcAxis2Placement2D ( model, entityLabel, activated );
				case 448: return new IfcAxis2Placement3D ( model, entityLabel, activated );
				case 1101: return new IfcBSplineCurveWithKnots ( model, entityLabel, activated );
				case 1103: return new IfcBSplineSurfaceWithKnots ( model, entityLabel, activated );
				case 171: return new IfcBeam ( model, entityLabel, activated );
				case 1104: return new IfcBeamStandardCase ( model, entityLabel, activated );
				case 632: return new IfcBeamType ( model, entityLabel, activated );
				case 723: return new IfcBlobTexture ( model, entityLabel, activated );
				case 702: return new IfcBlock ( model, entityLabel, activated );
				case 1105: return new IfcBoiler ( model, entityLabel, activated );
				case 142: return new IfcBoilerType ( model, entityLabel, activated );
				case 340: return new IfcBooleanClippingResult ( model, entityLabel, activated );
				case 339: return new IfcBooleanResult ( model, entityLabel, activated );
				case 1106: return new IfcBoundaryCurve ( model, entityLabel, activated );
				case 319: return new IfcBoundaryEdgeCondition ( model, entityLabel, activated );
				case 674: return new IfcBoundaryFaceCondition ( model, entityLabel, activated );
				case 394: return new IfcBoundaryNodeCondition ( model, entityLabel, activated );
				case 395: return new IfcBoundaryNodeConditionWarping ( model, entityLabel, activated );
				case 151: return new IfcBoundingBox ( model, entityLabel, activated );
				case 655: return new IfcBoxedHalfSpace ( model, entityLabel, activated );
				case 169: return new IfcBuilding ( model, entityLabel, activated );
				case 220: return new IfcBuildingElementPart ( model, entityLabel, activated );
				case 1107: return new IfcBuildingElementPartType ( model, entityLabel, activated );
				case 560: return new IfcBuildingElementProxy ( model, entityLabel, activated );
				case 107: return new IfcBuildingElementProxyType ( model, entityLabel, activated );
				case 459: return new IfcBuildingStorey ( model, entityLabel, activated );
				case 1108: return new IfcBuildingSystem ( model, entityLabel, activated );
				case 1109: return new IfcBurner ( model, entityLabel, activated );
				case 1110: return new IfcBurnerType ( model, entityLabel, activated );
				case 501: return new IfcCShapeProfileDef ( model, entityLabel, activated );
				case 1111: return new IfcCableCarrierFitting ( model, entityLabel, activated );
				case 689: return new IfcCableCarrierFittingType ( model, entityLabel, activated );
				case 1112: return new IfcCableCarrierSegment ( model, entityLabel, activated );
				case 301: return new IfcCableCarrierSegmentType ( model, entityLabel, activated );
				case 1113: return new IfcCableFitting ( model, entityLabel, activated );
				case 1114: return new IfcCableFittingType ( model, entityLabel, activated );
				case 1115: return new IfcCableSegment ( model, entityLabel, activated );
				case 77: return new IfcCableSegmentType ( model, entityLabel, activated );
				case 410: return new IfcCartesianPoint ( model, entityLabel, activated );
				case 1117: return new IfcCartesianPointList2D ( model, entityLabel, activated );
				case 1118: return new IfcCartesianPointList3D ( model, entityLabel, activated );
				case 145: return new IfcCartesianTransformationOperator2D ( model, entityLabel, activated );
				case 147: return new IfcCartesianTransformationOperator2DnonUniform ( model, entityLabel, activated );
				case 337: return new IfcCartesianTransformationOperator3D ( model, entityLabel, activated );
				case 479: return new IfcCartesianTransformationOperator3DnonUniform ( model, entityLabel, activated );
				case 353: return new IfcCenterLineProfileDef ( model, entityLabel, activated );
				case 1119: return new IfcChiller ( model, entityLabel, activated );
				case 368: return new IfcChillerType ( model, entityLabel, activated );
				case 1120: return new IfcChimney ( model, entityLabel, activated );
				case 1121: return new IfcChimneyType ( model, entityLabel, activated );
				case 336: return new IfcCircle ( model, entityLabel, activated );
				case 114: return new IfcCircleHollowProfileDef ( model, entityLabel, activated );
				case 113: return new IfcCircleProfileDef ( model, entityLabel, activated );
				case 1122: return new IfcCivilElement ( model, entityLabel, activated );
				case 1123: return new IfcCivilElementType ( model, entityLabel, activated );
				case 412: return new IfcClassification ( model, entityLabel, activated );
				case 209: return new IfcClassificationReference ( model, entityLabel, activated );
				case 161: return new IfcClosedShell ( model, entityLabel, activated );
				case 1124: return new IfcCoil ( model, entityLabel, activated );
				case 622: return new IfcCoilType ( model, entityLabel, activated );
				case 27: return new IfcColourRgb ( model, entityLabel, activated );
				case 1125: return new IfcColourRgbList ( model, entityLabel, activated );
				case 383: return new IfcColumn ( model, entityLabel, activated );
				case 1126: return new IfcColumnStandardCase ( model, entityLabel, activated );
				case 214: return new IfcColumnType ( model, entityLabel, activated );
				case 1127: return new IfcCommunicationsAppliance ( model, entityLabel, activated );
				case 1128: return new IfcCommunicationsApplianceType ( model, entityLabel, activated );
				case 379: return new IfcComplexProperty ( model, entityLabel, activated );
				case 1129: return new IfcComplexPropertyTemplate ( model, entityLabel, activated );
				case 279: return new IfcCompositeCurve ( model, entityLabel, activated );
				case 1130: return new IfcCompositeCurveOnSurface ( model, entityLabel, activated );
				case 460: return new IfcCompositeCurveSegment ( model, entityLabel, activated );
				case 172: return new IfcCompositeProfileDef ( model, entityLabel, activated );
				case 1131: return new IfcCompressor ( model, entityLabel, activated );
				case 586: return new IfcCompressorType ( model, entityLabel, activated );
				case 1132: return new IfcCondenser ( model, entityLabel, activated );
				case 297: return new IfcCondenserType ( model, entityLabel, activated );
				case 160: return new IfcConnectedFaceSet ( model, entityLabel, activated );
				case 590: return new IfcConnectionCurveGeometry ( model, entityLabel, activated );
				case 405: return new IfcConnectionPointEccentricity ( model, entityLabel, activated );
				case 71: return new IfcConnectionPointGeometry ( model, entityLabel, activated );
				case 69: return new IfcConnectionSurfaceGeometry ( model, entityLabel, activated );
				case 1133: return new IfcConnectionVolumeGeometry ( model, entityLabel, activated );
				case 408: return new IfcConstructionEquipmentResource ( model, entityLabel, activated );
				case 1134: return new IfcConstructionEquipmentResourceType ( model, entityLabel, activated );
				case 243: return new IfcConstructionMaterialResource ( model, entityLabel, activated );
				case 1135: return new IfcConstructionMaterialResourceType ( model, entityLabel, activated );
				case 660: return new IfcConstructionProductResource ( model, entityLabel, activated );
				case 1136: return new IfcConstructionProductResourceType ( model, entityLabel, activated );
				case 304: return new IfcContextDependentUnit ( model, entityLabel, activated );
				case 1139: return new IfcController ( model, entityLabel, activated );
				case 484: return new IfcControllerType ( model, entityLabel, activated );
				case 92: return new IfcConversionBasedUnit ( model, entityLabel, activated );
				case 1140: return new IfcConversionBasedUnitWithOffset ( model, entityLabel, activated );
				case 1141: return new IfcCooledBeam ( model, entityLabel, activated );
				case 367: return new IfcCooledBeamType ( model, entityLabel, activated );
				case 1142: return new IfcCoolingTower ( model, entityLabel, activated );
				case 478: return new IfcCoolingTowerType ( model, entityLabel, activated );
				case 694: return new IfcCostItem ( model, entityLabel, activated );
				case 695: return new IfcCostSchedule ( model, entityLabel, activated );
				case 658: return new IfcCostValue ( model, entityLabel, activated );
				case 382: return new IfcCovering ( model, entityLabel, activated );
				case 565: return new IfcCoveringType ( model, entityLabel, activated );
				case 659: return new IfcCrewResource ( model, entityLabel, activated );
				case 1145: return new IfcCrewResourceType ( model, entityLabel, activated );
				case 548: return new IfcCsgSolid ( model, entityLabel, activated );
				case 195: return new IfcCurrencyRelationship ( model, entityLabel, activated );
				case 456: return new IfcCurtainWall ( model, entityLabel, activated );
				case 494: return new IfcCurtainWallType ( model, entityLabel, activated );
				case 334: return new IfcCurveBoundedPlane ( model, entityLabel, activated );
				case 1146: return new IfcCurveBoundedSurface ( model, entityLabel, activated );
				case 118: return new IfcCurveStyle ( model, entityLabel, activated );
				case 223: return new IfcCurveStyleFont ( model, entityLabel, activated );
				case 569: return new IfcCurveStyleFontAndScaling ( model, entityLabel, activated );
				case 637: return new IfcCurveStyleFontPattern ( model, entityLabel, activated );
				case 1147: return new IfcCylindricalSurface ( model, entityLabel, activated );
				case 1148: return new IfcDamper ( model, entityLabel, activated );
				case 514: return new IfcDamperType ( model, entityLabel, activated );
				case 390: return new IfcDerivedProfileDef ( model, entityLabel, activated );
				case 630: return new IfcDerivedUnit ( model, entityLabel, activated );
				case 380: return new IfcDerivedUnitElement ( model, entityLabel, activated );
				case 303: return new IfcDimensionalExponents ( model, entityLabel, activated );
				case 344: return new IfcDirection ( model, entityLabel, activated );
				case 423: return new IfcDiscreteAccessory ( model, entityLabel, activated );
				case 135: return new IfcDiscreteAccessoryType ( model, entityLabel, activated );
				case 180: return new IfcDistributionChamberElement ( model, entityLabel, activated );
				case 396: return new IfcDistributionChamberElementType ( model, entityLabel, activated );
				case 1149: return new IfcDistributionCircuit ( model, entityLabel, activated );
				case 468: return new IfcDistributionControlElement ( model, entityLabel, activated );
				case 44: return new IfcDistributionElement ( model, entityLabel, activated );
				case 47: return new IfcDistributionElementType ( model, entityLabel, activated );
				case 45: return new IfcDistributionFlowElement ( model, entityLabel, activated );
				case 178: return new IfcDistributionPort ( model, entityLabel, activated );
				case 1150: return new IfcDistributionSystem ( model, entityLabel, activated );
				case 208: return new IfcDocumentInformation ( model, entityLabel, activated );
				case 491: return new IfcDocumentInformationRelationship ( model, entityLabel, activated );
				case 450: return new IfcDocumentReference ( model, entityLabel, activated );
				case 213: return new IfcDoor ( model, entityLabel, activated );
				case 493: return new IfcDoorLiningProperties ( model, entityLabel, activated );
				case 602: return new IfcDoorPanelProperties ( model, entityLabel, activated );
				case 1151: return new IfcDoorStandardCase ( model, entityLabel, activated );
				case 492: return new IfcDoorStyle ( model, entityLabel, activated );
				case 1152: return new IfcDoorType ( model, entityLabel, activated );
				case 607: return new IfcDraughtingPreDefinedColour ( model, entityLabel, activated );
				case 286: return new IfcDraughtingPreDefinedCurveFont ( model, entityLabel, activated );
				case 1153: return new IfcDuctFitting ( model, entityLabel, activated );
				case 686: return new IfcDuctFittingType ( model, entityLabel, activated );
				case 1154: return new IfcDuctSegment ( model, entityLabel, activated );
				case 270: return new IfcDuctSegmentType ( model, entityLabel, activated );
				case 1155: return new IfcDuctSilencer ( model, entityLabel, activated );
				case 141: return new IfcDuctSilencerType ( model, entityLabel, activated );
				case 202: return new IfcEdge ( model, entityLabel, activated );
				case 203: return new IfcEdgeCurve ( model, entityLabel, activated );
				case 302: return new IfcEdgeLoop ( model, entityLabel, activated );
				case 1156: return new IfcElectricAppliance ( model, entityLabel, activated );
				case 192: return new IfcElectricApplianceType ( model, entityLabel, activated );
				case 1157: return new IfcElectricDistributionBoard ( model, entityLabel, activated );
				case 1158: return new IfcElectricDistributionBoardType ( model, entityLabel, activated );
				case 1159: return new IfcElectricFlowStorageDevice ( model, entityLabel, activated );
				case 372: return new IfcElectricFlowStorageDeviceType ( model, entityLabel, activated );
				case 1160: return new IfcElectricGenerator ( model, entityLabel, activated );
				case 241: return new IfcElectricGeneratorType ( model, entityLabel, activated );
				case 1161: return new IfcElectricMotor ( model, entityLabel, activated );
				case 370: return new IfcElectricMotorType ( model, entityLabel, activated );
				case 1162: return new IfcElectricTimeControl ( model, entityLabel, activated );
				case 273: return new IfcElectricTimeControlType ( model, entityLabel, activated );
				case 18: return new IfcElementAssembly ( model, entityLabel, activated );
				case 1163: return new IfcElementAssemblyType ( model, entityLabel, activated );
				case 458: return new IfcElementQuantity ( model, entityLabel, activated );
				case 298: return new IfcEllipse ( model, entityLabel, activated );
				case 285: return new IfcEllipseProfileDef ( model, entityLabel, activated );
				case 175: return new IfcEnergyConversionDevice ( model, entityLabel, activated );
				case 1164: return new IfcEngine ( model, entityLabel, activated );
				case 1165: return new IfcEngineType ( model, entityLabel, activated );
				case 1166: return new IfcEvaporativeCooler ( model, entityLabel, activated );
				case 621: return new IfcEvaporativeCoolerType ( model, entityLabel, activated );
				case 1167: return new IfcEvaporator ( model, entityLabel, activated );
				case 513: return new IfcEvaporatorType ( model, entityLabel, activated );
				case 1168: return new IfcEvent ( model, entityLabel, activated );
				case 1169: return new IfcEventTime ( model, entityLabel, activated );
				case 1170: return new IfcEventType ( model, entityLabel, activated );
				case 1173: return new IfcExternalReferenceRelationship ( model, entityLabel, activated );
				case 1174: return new IfcExternalSpatialElement ( model, entityLabel, activated );
				case 724: return new IfcExternallyDefinedHatchStyle ( model, entityLabel, activated );
				case 318: return new IfcExternallyDefinedSurfaceStyle ( model, entityLabel, activated );
				case 132: return new IfcExternallyDefinedTextFont ( model, entityLabel, activated );
				case 238: return new IfcExtrudedAreaSolid ( model, entityLabel, activated );
				case 1176: return new IfcExtrudedAreaSolidTapered ( model, entityLabel, activated );
				case 83: return new IfcFace ( model, entityLabel, activated );
				case 438: return new IfcFaceBasedSurfaceModel ( model, entityLabel, activated );
				case 86: return new IfcFaceBound ( model, entityLabel, activated );
				case 201: return new IfcFaceOuterBound ( model, entityLabel, activated );
				case 85: return new IfcFaceSurface ( model, entityLabel, activated );
				case 148: return new IfcFacetedBrep ( model, entityLabel, activated );
				case 369: return new IfcFacetedBrepWithVoids ( model, entityLabel, activated );
				case 640: return new IfcFailureConnectionCondition ( model, entityLabel, activated );
				case 1177: return new IfcFan ( model, entityLabel, activated );
				case 651: return new IfcFanType ( model, entityLabel, activated );
				case 535: return new IfcFastener ( model, entityLabel, activated );
				case 642: return new IfcFastenerType ( model, entityLabel, activated );
				case 33: return new IfcFillAreaStyle ( model, entityLabel, activated );
				case 462: return new IfcFillAreaStyleHatching ( model, entityLabel, activated );
				case 725: return new IfcFillAreaStyleTiles ( model, entityLabel, activated );
				case 1178: return new IfcFilter ( model, entityLabel, activated );
				case 139: return new IfcFilterType ( model, entityLabel, activated );
				case 1179: return new IfcFireSuppressionTerminal ( model, entityLabel, activated );
				case 477: return new IfcFireSuppressionTerminalType ( model, entityLabel, activated );
				case 1180: return new IfcFixedReferenceSweptAreaSolid ( model, entityLabel, activated );
				case 121: return new IfcFlowController ( model, entityLabel, activated );
				case 467: return new IfcFlowFitting ( model, entityLabel, activated );
				case 1181: return new IfcFlowInstrument ( model, entityLabel, activated );
				case 196: return new IfcFlowInstrumentType ( model, entityLabel, activated );
				case 1182: return new IfcFlowMeter ( model, entityLabel, activated );
				case 366: return new IfcFlowMeterType ( model, entityLabel, activated );
				case 502: return new IfcFlowMovingDevice ( model, entityLabel, activated );
				case 574: return new IfcFlowSegment ( model, entityLabel, activated );
				case 371: return new IfcFlowStorageDevice ( model, entityLabel, activated );
				case 46: return new IfcFlowTerminal ( model, entityLabel, activated );
				case 425: return new IfcFlowTreatmentDevice ( model, entityLabel, activated );
				case 120: return new IfcFooting ( model, entityLabel, activated );
				case 1183: return new IfcFootingType ( model, entityLabel, activated );
				case 253: return new IfcFurnishingElement ( model, entityLabel, activated );
				case 358: return new IfcFurnishingElementType ( model, entityLabel, activated );
				case 1184: return new IfcFurniture ( model, entityLabel, activated );
				case 359: return new IfcFurnitureType ( model, entityLabel, activated );
				case 1185: return new IfcGeographicElement ( model, entityLabel, activated );
				case 1186: return new IfcGeographicElementType ( model, entityLabel, activated );
				case 237: return new IfcGeometricCurveSet ( model, entityLabel, activated );
				case 555: return new IfcGeometricRepresentationContext ( model, entityLabel, activated );
				case 556: return new IfcGeometricRepresentationSubContext ( model, entityLabel, activated );
				case 236: return new IfcGeometricSet ( model, entityLabel, activated );
				case 564: return new IfcGrid ( model, entityLabel, activated );
				case 441: return new IfcGridAxis ( model, entityLabel, activated );
				case 439: return new IfcGridPlacement ( model, entityLabel, activated );
				case 228: return new IfcGroup ( model, entityLabel, activated );
				case 338: return new IfcHalfSpaceSolid ( model, entityLabel, activated );
				case 1187: return new IfcHeatExchanger ( model, entityLabel, activated );
				case 365: return new IfcHeatExchangerType ( model, entityLabel, activated );
				case 1188: return new IfcHumidifier ( model, entityLabel, activated );
				case 64: return new IfcHumidifierType ( model, entityLabel, activated );
				case 352: return new IfcIShapeProfileDef ( model, entityLabel, activated );
				case 727: return new IfcImageTexture ( model, entityLabel, activated );
				case 1189: return new IfcIndexedColourMap ( model, entityLabel, activated );
				case 1190: return new IfcIndexedPolyCurve ( model, entityLabel, activated );
				case 1321: return new IfcIndexedPolygonalFace ( model, entityLabel, activated );
				case 1322: return new IfcIndexedPolygonalFaceWithVoids ( model, entityLabel, activated );
				case 1192: return new IfcIndexedTriangleTextureMap ( model, entityLabel, activated );
				case 1193: return new IfcInterceptor ( model, entityLabel, activated );
				case 1194: return new IfcInterceptorType ( model, entityLabel, activated );
				case 1323: return new IfcIntersectionCurve ( model, entityLabel, activated );
				case 768: return new IfcInventory ( model, entityLabel, activated );
				case 570: return new IfcIrregularTimeSeries ( model, entityLabel, activated );
				case 609: return new IfcIrregularTimeSeriesValue ( model, entityLabel, activated );
				case 1195: return new IfcJunctionBox ( model, entityLabel, activated );
				case 593: return new IfcJunctionBoxType ( model, entityLabel, activated );
				case 284: return new IfcLShapeProfileDef ( model, entityLabel, activated );
				case 156: return new IfcLaborResource ( model, entityLabel, activated );
				case 1196: return new IfcLaborResourceType ( model, entityLabel, activated );
				case 1197: return new IfcLagTime ( model, entityLabel, activated );
				case 1198: return new IfcLamp ( model, entityLabel, activated );
				case 592: return new IfcLampType ( model, entityLabel, activated );
				case 449: return new IfcLibraryInformation ( model, entityLabel, activated );
				case 598: return new IfcLibraryReference ( model, entityLabel, activated );
				case 753: return new IfcLightDistributionData ( model, entityLabel, activated );
				case 1199: return new IfcLightFixture ( model, entityLabel, activated );
				case 517: return new IfcLightFixtureType ( model, entityLabel, activated );
				case 754: return new IfcLightIntensityDistribution ( model, entityLabel, activated );
				case 756: return new IfcLightSourceAmbient ( model, entityLabel, activated );
				case 757: return new IfcLightSourceDirectional ( model, entityLabel, activated );
				case 758: return new IfcLightSourceGoniometric ( model, entityLabel, activated );
				case 759: return new IfcLightSourcePositional ( model, entityLabel, activated );
				case 760: return new IfcLightSourceSpot ( model, entityLabel, activated );
				case 272: return new IfcLine ( model, entityLabel, activated );
				case 481: return new IfcLocalPlacement ( model, entityLabel, activated );
				case 199: return new IfcLoop ( model, entityLabel, activated );
				case 1200: return new IfcMapConversion ( model, entityLabel, activated );
				case 333: return new IfcMappedItem ( model, entityLabel, activated );
				case 94: return new IfcMaterial ( model, entityLabel, activated );
				case 8: return new IfcMaterialClassificationRelationship ( model, entityLabel, activated );
				case 1201: return new IfcMaterialConstituent ( model, entityLabel, activated );
				case 1202: return new IfcMaterialConstituentSet ( model, entityLabel, activated );
				case 2: return new IfcMaterialDefinitionRepresentation ( model, entityLabel, activated );
				case 446: return new IfcMaterialLayer ( model, entityLabel, activated );
				case 205: return new IfcMaterialLayerSet ( model, entityLabel, activated );
				case 165: return new IfcMaterialLayerSetUsage ( model, entityLabel, activated );
				case 1204: return new IfcMaterialLayerWithOffsets ( model, entityLabel, activated );
				case 246: return new IfcMaterialList ( model, entityLabel, activated );
				case 1205: return new IfcMaterialProfile ( model, entityLabel, activated );
				case 1206: return new IfcMaterialProfileSet ( model, entityLabel, activated );
				case 1207: return new IfcMaterialProfileSetUsage ( model, entityLabel, activated );
				case 1208: return new IfcMaterialProfileSetUsageTapering ( model, entityLabel, activated );
				case 1209: return new IfcMaterialProfileWithOffsets ( model, entityLabel, activated );
				case 437: return new IfcMaterialProperties ( model, entityLabel, activated );
				case 1210: return new IfcMaterialRelationship ( model, entityLabel, activated );
				case 7: return new IfcMeasureWithUnit ( model, entityLabel, activated );
				case 536: return new IfcMechanicalFastener ( model, entityLabel, activated );
				case 643: return new IfcMechanicalFastenerType ( model, entityLabel, activated );
				case 1212: return new IfcMedicalDevice ( model, entityLabel, activated );
				case 1213: return new IfcMedicalDeviceType ( model, entityLabel, activated );
				case 310: return new IfcMember ( model, entityLabel, activated );
				case 1214: return new IfcMemberStandardCase ( model, entityLabel, activated );
				case 601: return new IfcMemberType ( model, entityLabel, activated );
				case 80: return new IfcMetric ( model, entityLabel, activated );
				case 1215: return new IfcMirroredProfileDef ( model, entityLabel, activated );
				case 545: return new IfcMonetaryUnit ( model, entityLabel, activated );
				case 1216: return new IfcMotorConnection ( model, entityLabel, activated );
				case 155: return new IfcMotorConnectionType ( model, entityLabel, activated );
				case 518: return new IfcObjective ( model, entityLabel, activated );
				case 641: return new IfcOccupant ( model, entityLabel, activated );
				case 687: return new IfcOffsetCurve2D ( model, entityLabel, activated );
				case 67: return new IfcOffsetCurve3D ( model, entityLabel, activated );
				case 488: return new IfcOpenShell ( model, entityLabel, activated );
				case 498: return new IfcOpeningElement ( model, entityLabel, activated );
				case 1217: return new IfcOpeningStandardCase ( model, entityLabel, activated );
				case 276: return new IfcOrganization ( model, entityLabel, activated );
				case 486: return new IfcOrganizationRelationship ( model, entityLabel, activated );
				case 596: return new IfcOrientedEdge ( model, entityLabel, activated );
				case 1218: return new IfcOuterBoundaryCurve ( model, entityLabel, activated );
				case 1219: return new IfcOutlet ( model, entityLabel, activated );
				case 240: return new IfcOutletType ( model, entityLabel, activated );
				case 519: return new IfcOwnerHistory ( model, entityLabel, activated );
				case 771: return new IfcPath ( model, entityLabel, activated );
				case 1220: return new IfcPcurve ( model, entityLabel, activated );
				case 710: return new IfcPerformanceHistory ( model, entityLabel, activated );
				case 707: return new IfcPermeableCoveringProperties ( model, entityLabel, activated );
				case 189: return new IfcPermit ( model, entityLabel, activated );
				case 198: return new IfcPerson ( model, entityLabel, activated );
				case 663: return new IfcPersonAndOrganization ( model, entityLabel, activated );
				case 604: return new IfcPhysicalComplexQuantity ( model, entityLabel, activated );
				case 572: return new IfcPile ( model, entityLabel, activated );
				case 1221: return new IfcPileType ( model, entityLabel, activated );
				case 1222: return new IfcPipeFitting ( model, entityLabel, activated );
				case 511: return new IfcPipeFittingType ( model, entityLabel, activated );
				case 1223: return new IfcPipeSegment ( model, entityLabel, activated );
				case 62: return new IfcPipeSegmentType ( model, entityLabel, activated );
				case 728: return new IfcPixelTexture ( model, entityLabel, activated );
				case 762: return new IfcPlanarBox ( model, entityLabel, activated );
				case 469: return new IfcPlanarExtent ( model, entityLabel, activated );
				case 388: return new IfcPlane ( model, entityLabel, activated );
				case 351: return new IfcPlate ( model, entityLabel, activated );
				case 1224: return new IfcPlateStandardCase ( model, entityLabel, activated );
				case 526: return new IfcPlateType ( model, entityLabel, activated );
				case 654: return new IfcPointOnCurve ( model, entityLabel, activated );
				case 65: return new IfcPointOnSurface ( model, entityLabel, activated );
				case 200: return new IfcPolyLoop ( model, entityLabel, activated );
				case 623: return new IfcPolygonalBoundedHalfSpace ( model, entityLabel, activated );
				case 1324: return new IfcPolygonalFaceSet ( model, entityLabel, activated );
				case 500: return new IfcPolyline ( model, entityLabel, activated );
				case 662: return new IfcPostalAddress ( model, entityLabel, activated );
				case 258: return new IfcPresentationLayerAssignment ( model, entityLabel, activated );
				case 259: return new IfcPresentationLayerWithStyle ( model, entityLabel, activated );
				case 584: return new IfcPresentationStyleAssignment ( model, entityLabel, activated );
				case 294: return new IfcProcedure ( model, entityLabel, activated );
				case 1228: return new IfcProcedureType ( model, entityLabel, activated );
				case 90: return new IfcProductDefinitionShape ( model, entityLabel, activated );
				case 105: return new IfcProfileDef ( model, entityLabel, activated );
				case 649: return new IfcProfileProperties ( model, entityLabel, activated );
				case 204: return new IfcProject ( model, entityLabel, activated );
				case 1229: return new IfcProjectLibrary ( model, entityLabel, activated );
				case 696: return new IfcProjectOrder ( model, entityLabel, activated );
				case 1230: return new IfcProjectedCRS ( model, entityLabel, activated );
				case 384: return new IfcProjectionElement ( model, entityLabel, activated );
				case 3: return new IfcPropertyBoundedValue ( model, entityLabel, activated );
				case 444: return new IfcPropertyDependencyRelationship ( model, entityLabel, activated );
				case 629: return new IfcPropertyEnumeratedValue ( model, entityLabel, activated );
				case 597: return new IfcPropertyEnumeration ( model, entityLabel, activated );
				case 489: return new IfcPropertyListValue ( model, entityLabel, activated );
				case 277: return new IfcPropertyReferenceValue ( model, entityLabel, activated );
				case 666: return new IfcPropertySet ( model, entityLabel, activated );
				case 1232: return new IfcPropertySetTemplate ( model, entityLabel, activated );
				case 628: return new IfcPropertySingleValue ( model, entityLabel, activated );
				case 557: return new IfcPropertyTableValue ( model, entityLabel, activated );
				case 1235: return new IfcProtectiveDevice ( model, entityLabel, activated );
				case 1236: return new IfcProtectiveDeviceTrippingUnit ( model, entityLabel, activated );
				case 1237: return new IfcProtectiveDeviceTrippingUnitType ( model, entityLabel, activated );
				case 550: return new IfcProtectiveDeviceType ( model, entityLabel, activated );
				case 447: return new IfcProxy ( model, entityLabel, activated );
				case 1238: return new IfcPump ( model, entityLabel, activated );
				case 685: return new IfcPumpType ( model, entityLabel, activated );
				case 495: return new IfcQuantityArea ( model, entityLabel, activated );
				case 457: return new IfcQuantityCount ( model, entityLabel, activated );
				case 527: return new IfcQuantityLength ( model, entityLabel, activated );
				case 254: return new IfcQuantityTime ( model, entityLabel, activated );
				case 100: return new IfcQuantityVolume ( model, entityLabel, activated );
				case 603: return new IfcQuantityWeight ( model, entityLabel, activated );
				case 350: return new IfcRailing ( model, entityLabel, activated );
				case 415: return new IfcRailingType ( model, entityLabel, activated );
				case 414: return new IfcRamp ( model, entityLabel, activated );
				case 348: return new IfcRampFlight ( model, entityLabel, activated );
				case 283: return new IfcRampFlightType ( model, entityLabel, activated );
				case 1240: return new IfcRampType ( model, entityLabel, activated );
				case 1241: return new IfcRationalBSplineCurveWithKnots ( model, entityLabel, activated );
				case 1242: return new IfcRationalBSplineSurfaceWithKnots ( model, entityLabel, activated );
				case 562: return new IfcRectangleHollowProfileDef ( model, entityLabel, activated );
				case 103: return new IfcRectangleProfileDef ( model, entityLabel, activated );
				case 705: return new IfcRectangularPyramid ( model, entityLabel, activated );
				case 653: return new IfcRectangularTrimmedSurface ( model, entityLabel, activated );
				case 1243: return new IfcRecurrencePattern ( model, entityLabel, activated );
				case 1244: return new IfcReference ( model, entityLabel, activated );
				case 417: return new IfcRegularTimeSeries ( model, entityLabel, activated );
				case 684: return new IfcReinforcementBarProperties ( model, entityLabel, activated );
				case 263: return new IfcReinforcementDefinitionProperties ( model, entityLabel, activated );
				case 571: return new IfcReinforcingBar ( model, entityLabel, activated );
				case 1245: return new IfcReinforcingBarType ( model, entityLabel, activated );
				case 531: return new IfcReinforcingMesh ( model, entityLabel, activated );
				case 1247: return new IfcReinforcingMeshType ( model, entityLabel, activated );
				case 631: return new IfcRelAggregates ( model, entityLabel, activated );
				case 323: return new IfcRelAssignsToActor ( model, entityLabel, activated );
				case 558: return new IfcRelAssignsToControl ( model, entityLabel, activated );
				case 278: return new IfcRelAssignsToGroup ( model, entityLabel, activated );
				case 1248: return new IfcRelAssignsToGroupByFactor ( model, entityLabel, activated );
				case 249: return new IfcRelAssignsToProcess ( model, entityLabel, activated );
				case 309: return new IfcRelAssignsToProduct ( model, entityLabel, activated );
				case 9: return new IfcRelAssignsToResource ( model, entityLabel, activated );
				case 342: return new IfcRelAssociatesApproval ( model, entityLabel, activated );
				case 343: return new IfcRelAssociatesClassification ( model, entityLabel, activated );
				case 711: return new IfcRelAssociatesConstraint ( model, entityLabel, activated );
				case 307: return new IfcRelAssociatesDocument ( model, entityLabel, activated );
				case 522: return new IfcRelAssociatesLibrary ( model, entityLabel, activated );
				case 497: return new IfcRelAssociatesMaterial ( model, entityLabel, activated );
				case 312: return new IfcRelConnectsElements ( model, entityLabel, activated );
				case 668: return new IfcRelConnectsPathElements ( model, entityLabel, activated );
				case 633: return new IfcRelConnectsPortToElement ( model, entityLabel, activated );
				case 215: return new IfcRelConnectsPorts ( model, entityLabel, activated );
				case 211: return new IfcRelConnectsStructuralActivity ( model, entityLabel, activated );
				case 321: return new IfcRelConnectsStructuralMember ( model, entityLabel, activated );
				case 322: return new IfcRelConnectsWithEccentricity ( model, entityLabel, activated );
				case 313: return new IfcRelConnectsWithRealizingElements ( model, entityLabel, activated );
				case 559: return new IfcRelContainedInSpatialStructure ( model, entityLabel, activated );
				case 24: return new IfcRelCoversBldgElements ( model, entityLabel, activated );
				case 17: return new IfcRelCoversSpaces ( model, entityLabel, activated );
				case 1249: return new IfcRelDeclares ( model, entityLabel, activated );
				case 1250: return new IfcRelDefinesByObject ( model, entityLabel, activated );
				case 247: return new IfcRelDefinesByProperties ( model, entityLabel, activated );
				case 1251: return new IfcRelDefinesByTemplate ( model, entityLabel, activated );
				case 206: return new IfcRelDefinesByType ( model, entityLabel, activated );
				case 563: return new IfcRelFillsElement ( model, entityLabel, activated );
				case 360: return new IfcRelFlowControlElements ( model, entityLabel, activated );
				case 1252: return new IfcRelInterferesElements ( model, entityLabel, activated );
				case 305: return new IfcRelNests ( model, entityLabel, activated );
				case 311: return new IfcRelProjectsElement ( model, entityLabel, activated );
				case 455: return new IfcRelReferencedInSpatialStructure ( model, entityLabel, activated );
				case 490: return new IfcRelSequence ( model, entityLabel, activated );
				case 600: return new IfcRelServicesBuildings ( model, entityLabel, activated );
				case 15: return new IfcRelSpaceBoundary ( model, entityLabel, activated );
				case 1253: return new IfcRelSpaceBoundary1stLevel ( model, entityLabel, activated );
				case 1254: return new IfcRelSpaceBoundary2ndLevel ( model, entityLabel, activated );
				case 496: return new IfcRelVoidsElement ( model, entityLabel, activated );
				case 1255: return new IfcReparametrisedCompositeCurveSegment ( model, entityLabel, activated );
				case 95: return new IfcRepresentationMap ( model, entityLabel, activated );
				case 1256: return new IfcResourceApprovalRelationship ( model, entityLabel, activated );
				case 1257: return new IfcResourceConstraintRelationship ( model, entityLabel, activated );
				case 1259: return new IfcResourceTime ( model, entityLabel, activated );
				case 515: return new IfcRevolvedAreaSolid ( model, entityLabel, activated );
				case 1260: return new IfcRevolvedAreaSolidTapered ( model, entityLabel, activated );
				case 703: return new IfcRightCircularCone ( model, entityLabel, activated );
				case 704: return new IfcRightCircularCylinder ( model, entityLabel, activated );
				case 347: return new IfcRoof ( model, entityLabel, activated );
				case 1261: return new IfcRoofType ( model, entityLabel, activated );
				case 106: return new IfcRoundedRectangleProfileDef ( model, entityLabel, activated );
				case 164: return new IfcSIUnit ( model, entityLabel, activated );
				case 1262: return new IfcSanitaryTerminal ( model, entityLabel, activated );
				case 435: return new IfcSanitaryTerminalType ( model, entityLabel, activated );
				case 1325: return new IfcSeamCurve ( model, entityLabel, activated );
				case 184: return new IfcSectionProperties ( model, entityLabel, activated );
				case 508: return new IfcSectionReinforcementProperties ( model, entityLabel, activated );
				case 300: return new IfcSectionedSpine ( model, entityLabel, activated );
				case 1264: return new IfcSensor ( model, entityLabel, activated );
				case 375: return new IfcSensorType ( model, entityLabel, activated );
				case 1265: return new IfcShadingDevice ( model, entityLabel, activated );
				case 1266: return new IfcShadingDeviceType ( model, entityLabel, activated );
				case 665: return new IfcShapeAspect ( model, entityLabel, activated );
				case 664: return new IfcShapeRepresentation ( model, entityLabel, activated );
				case 235: return new IfcShellBasedSurfaceModel ( model, entityLabel, activated );
				case 1267: return new IfcSimplePropertyTemplate ( model, entityLabel, activated );
				case 349: return new IfcSite ( model, entityLabel, activated );
				case 99: return new IfcSlab ( model, entityLabel, activated );
				case 1268: return new IfcSlabElementedCase ( model, entityLabel, activated );
				case 1269: return new IfcSlabStandardCase ( model, entityLabel, activated );
				case 381: return new IfcSlabType ( model, entityLabel, activated );
				case 638: return new IfcSlippageConnectionCondition ( model, entityLabel, activated );
				case 1270: return new IfcSolarDevice ( model, entityLabel, activated );
				case 1271: return new IfcSolarDeviceType ( model, entityLabel, activated );
				case 454: return new IfcSpace ( model, entityLabel, activated );
				case 1272: return new IfcSpaceHeater ( model, entityLabel, activated );
				case 59: return new IfcSpaceHeaterType ( model, entityLabel, activated );
				case 529: return new IfcSpaceType ( model, entityLabel, activated );
				case 1275: return new IfcSpatialZone ( model, entityLabel, activated );
				case 1276: return new IfcSpatialZoneType ( model, entityLabel, activated );
				case 706: return new IfcSphere ( model, entityLabel, activated );
				case 1326: return new IfcSphericalSurface ( model, entityLabel, activated );
				case 1277: return new IfcStackTerminal ( model, entityLabel, activated );
				case 476: return new IfcStackTerminalType ( model, entityLabel, activated );
				case 346: return new IfcStair ( model, entityLabel, activated );
				case 25: return new IfcStairFlight ( model, entityLabel, activated );
				case 525: return new IfcStairFlightType ( model, entityLabel, activated );
				case 1278: return new IfcStairType ( model, entityLabel, activated );
				case 230: return new IfcStructuralAnalysisModel ( model, entityLabel, activated );
				case 1279: return new IfcStructuralCurveAction ( model, entityLabel, activated );
				case 534: return new IfcStructuralCurveConnection ( model, entityLabel, activated );
				case 224: return new IfcStructuralCurveMember ( model, entityLabel, activated );
				case 227: return new IfcStructuralCurveMemberVarying ( model, entityLabel, activated );
				case 1280: return new IfcStructuralCurveReaction ( model, entityLabel, activated );
				case 463: return new IfcStructuralLinearAction ( model, entityLabel, activated );
				case 1281: return new IfcStructuralLoadCase ( model, entityLabel, activated );
				case 1282: return new IfcStructuralLoadConfiguration ( model, entityLabel, activated );
				case 573: return new IfcStructuralLoadGroup ( model, entityLabel, activated );
				case 419: return new IfcStructuralLoadLinearForce ( model, entityLabel, activated );
				case 174: return new IfcStructuralLoadPlanarForce ( model, entityLabel, activated );
				case 289: return new IfcStructuralLoadSingleDisplacement ( model, entityLabel, activated );
				case 290: return new IfcStructuralLoadSingleDisplacementDistortion ( model, entityLabel, activated );
				case 119: return new IfcStructuralLoadSingleForce ( model, entityLabel, activated );
				case 393: return new IfcStructuralLoadSingleForceWarping ( model, entityLabel, activated );
				case 36: return new IfcStructuralLoadTemperature ( model, entityLabel, activated );
				case 39: return new IfcStructuralPlanarAction ( model, entityLabel, activated );
				case 356: return new IfcStructuralPointAction ( model, entityLabel, activated );
				case 533: return new IfcStructuralPointConnection ( model, entityLabel, activated );
				case 354: return new IfcStructuralPointReaction ( model, entityLabel, activated );
				case 532: return new IfcStructuralResultGroup ( model, entityLabel, activated );
				case 1284: return new IfcStructuralSurfaceAction ( model, entityLabel, activated );
				case 264: return new IfcStructuralSurfaceConnection ( model, entityLabel, activated );
				case 420: return new IfcStructuralSurfaceMember ( model, entityLabel, activated );
				case 421: return new IfcStructuralSurfaceMemberVarying ( model, entityLabel, activated );
				case 1285: return new IfcStructuralSurfaceReaction ( model, entityLabel, activated );
				case 56: return new IfcStyledItem ( model, entityLabel, activated );
				case 162: return new IfcStyledRepresentation ( model, entityLabel, activated );
				case 594: return new IfcSubContractResource ( model, entityLabel, activated );
				case 1286: return new IfcSubContractResourceType ( model, entityLabel, activated );
				case 487: return new IfcSubedge ( model, entityLabel, activated );
				case 1327: return new IfcSurfaceCurve ( model, entityLabel, activated );
				case 480: return new IfcSurfaceCurveSweptAreaSolid ( model, entityLabel, activated );
				case 1287: return new IfcSurfaceFeature ( model, entityLabel, activated );
				case 256: return new IfcSurfaceOfLinearExtrusion ( model, entityLabel, activated );
				case 109: return new IfcSurfaceOfRevolution ( model, entityLabel, activated );
				case 1288: return new IfcSurfaceReinforcementArea ( model, entityLabel, activated );
				case 260: return new IfcSurfaceStyle ( model, entityLabel, activated );
				case 117: return new IfcSurfaceStyleLighting ( model, entityLabel, activated );
				case 636: return new IfcSurfaceStyleRefraction ( model, entityLabel, activated );
				case 317: return new IfcSurfaceStyleRendering ( model, entityLabel, activated );
				case 316: return new IfcSurfaceStyleShading ( model, entityLabel, activated );
				case 392: return new IfcSurfaceStyleWithTextures ( model, entityLabel, activated );
				case 547: return new IfcSweptDiskSolid ( model, entityLabel, activated );
				case 1289: return new IfcSweptDiskSolidPolygonal ( model, entityLabel, activated );
				case 1290: return new IfcSwitchingDevice ( model, entityLabel, activated );
				case 153: return new IfcSwitchingDeviceType ( model, entityLabel, activated );
				case 229: return new IfcSystem ( model, entityLabel, activated );
				case 1291: return new IfcSystemFurnitureElement ( model, entityLabel, activated );
				case 422: return new IfcSystemFurnitureElementType ( model, entityLabel, activated );
				case 671: return new IfcTShapeProfileDef ( model, entityLabel, activated );
				case 377: return new IfcTable ( model, entityLabel, activated );
				case 1292: return new IfcTableColumn ( model, entityLabel, activated );
				case 661: return new IfcTableRow ( model, entityLabel, activated );
				case 1293: return new IfcTank ( model, entityLabel, activated );
				case 619: return new IfcTankType ( model, entityLabel, activated );
				case 72: return new IfcTask ( model, entityLabel, activated );
				case 1294: return new IfcTaskTime ( model, entityLabel, activated );
				case 1295: return new IfcTaskTimeRecurring ( model, entityLabel, activated );
				case 1296: return new IfcTaskType ( model, entityLabel, activated );
				case 553: return new IfcTelecomAddress ( model, entityLabel, activated );
				case 261: return new IfcTendon ( model, entityLabel, activated );
				case 675: return new IfcTendonAnchor ( model, entityLabel, activated );
				case 1297: return new IfcTendonAnchorType ( model, entityLabel, activated );
				case 1298: return new IfcTendonType ( model, entityLabel, activated );
				case 29: return new IfcTextLiteral ( model, entityLabel, activated );
				case 426: return new IfcTextLiteralWithExtent ( model, entityLabel, activated );
				case 427: return new IfcTextStyle ( model, entityLabel, activated );
				case 503: return new IfcTextStyleFontModel ( model, entityLabel, activated );
				case 611: return new IfcTextStyleForDefinedFont ( model, entityLabel, activated );
				case 581: return new IfcTextStyleTextModel ( model, entityLabel, activated );
				case 733: return new IfcTextureCoordinateGenerator ( model, entityLabel, activated );
				case 734: return new IfcTextureMap ( model, entityLabel, activated );
				case 735: return new IfcTextureVertex ( model, entityLabel, activated );
				case 1301: return new IfcTextureVertexList ( model, entityLabel, activated );
				case 1302: return new IfcTimePeriod ( model, entityLabel, activated );
				case 35: return new IfcTimeSeriesValue ( model, entityLabel, activated );
				case 88: return new IfcTopologyRepresentation ( model, entityLabel, activated );
				case 1328: return new IfcToroidalSurface ( model, entityLabel, activated );
				case 1303: return new IfcTransformer ( model, entityLabel, activated );
				case 549: return new IfcTransformerType ( model, entityLabel, activated );
				case 416: return new IfcTransportElement ( model, entityLabel, activated );
				case 475: return new IfcTransportElementType ( model, entityLabel, activated );
				case 561: return new IfcTrapeziumProfileDef ( model, entityLabel, activated );
				case 1304: return new IfcTriangulatedFaceSet ( model, entityLabel, activated );
				case 143: return new IfcTrimmedCurve ( model, entityLabel, activated );
				case 1305: return new IfcTubeBundle ( model, entityLabel, activated );
				case 138: return new IfcTubeBundleType ( model, entityLabel, activated );
				case 42: return new IfcTypeObject ( model, entityLabel, activated );
				case 43: return new IfcTypeProduct ( model, entityLabel, activated );
				case 670: return new IfcUShapeProfileDef ( model, entityLabel, activated );
				case 245: return new IfcUnitAssignment ( model, entityLabel, activated );
				case 1308: return new IfcUnitaryControlElement ( model, entityLabel, activated );
				case 1309: return new IfcUnitaryControlElementType ( model, entityLabel, activated );
				case 1310: return new IfcUnitaryEquipment ( model, entityLabel, activated );
				case 234: return new IfcUnitaryEquipmentType ( model, entityLabel, activated );
				case 1311: return new IfcValve ( model, entityLabel, activated );
				case 465: return new IfcValveType ( model, entityLabel, activated );
				case 652: return new IfcVector ( model, entityLabel, activated );
				case 520: return new IfcVertex ( model, entityLabel, activated );
				case 244: return new IfcVertexLoop ( model, entityLabel, activated );
				case 521: return new IfcVertexPoint ( model, entityLabel, activated );
				case 1312: return new IfcVibrationIsolator ( model, entityLabel, activated );
				case 137: return new IfcVibrationIsolatorType ( model, entityLabel, activated );
				case 168: return new IfcVirtualElement ( model, entityLabel, activated );
				case 589: return new IfcVirtualGridIntersection ( model, entityLabel, activated );
				case 1313: return new IfcVoidingFeature ( model, entityLabel, activated );
				case 452: return new IfcWall ( model, entityLabel, activated );
				case 1314: return new IfcWallElementedCase ( model, entityLabel, activated );
				case 453: return new IfcWallStandardCase ( model, entityLabel, activated );
				case 282: return new IfcWallType ( model, entityLabel, activated );
				case 1315: return new IfcWasteTerminal ( model, entityLabel, activated );
				case 295: return new IfcWasteTerminalType ( model, entityLabel, activated );
				case 667: return new IfcWindow ( model, entityLabel, activated );
				case 252: return new IfcWindowLiningProperties ( model, entityLabel, activated );
				case 96: return new IfcWindowPanelProperties ( model, entityLabel, activated );
				case 1316: return new IfcWindowStandardCase ( model, entityLabel, activated );
				case 345: return new IfcWindowStyle ( model, entityLabel, activated );
				case 1317: return new IfcWindowType ( model, entityLabel, activated );
				case 1318: return new IfcWorkCalendar ( model, entityLabel, activated );
				case 187: return new IfcWorkPlan ( model, entityLabel, activated );
				case 186: return new IfcWorkSchedule ( model, entityLabel, activated );
				case 1319: return new IfcWorkTime ( model, entityLabel, activated );
				case 528: return new IfcZShapeProfileDef ( model, entityLabel, activated );
				case 669: return new IfcZone ( model, entityLabel, activated );
				default:
					return null;
			}
		}

		public IExpressValueType New(string typeName)
		{
			if (typeName == null)
				throw new ArgumentNullException();

			var name = typeName.ToUpperInvariant();
			switch(name)
			{
				case "IFCSTRIPPEDOPTIONAL": return new IfcStrippedOptional ();
				case "IFCABSORBEDDOSEMEASURE": return new IfcAbsorbedDoseMeasure ();
				case "IFCACCELERATIONMEASURE": return new IfcAccelerationMeasure ();
				case "IFCAMOUNTOFSUBSTANCEMEASURE": return new IfcAmountOfSubstanceMeasure ();
				case "IFCANGULARVELOCITYMEASURE": return new IfcAngularVelocityMeasure ();
				case "IFCARCINDEX": return new IfcArcIndex ();
				case "IFCAREADENSITYMEASURE": return new IfcAreaDensityMeasure ();
				case "IFCAREAMEASURE": return new IfcAreaMeasure ();
				case "IFCBINARY": return new IfcBinary ();
				case "IFCBOOLEAN": return new IfcBoolean ();
				case "IFCBOXALIGNMENT": return new IfcBoxAlignment ();
				case "IFCCARDINALPOINTREFERENCE": return new IfcCardinalPointReference ();
				case "IFCCOMPLEXNUMBER": return new IfcComplexNumber ();
				case "IFCCOMPOUNDPLANEANGLEMEASURE": return new IfcCompoundPlaneAngleMeasure ();
				case "IFCCONTEXTDEPENDENTMEASURE": return new IfcContextDependentMeasure ();
				case "IFCCOUNTMEASURE": return new IfcCountMeasure ();
				case "IFCCURVATUREMEASURE": return new IfcCurvatureMeasure ();
				case "IFCDATE": return new IfcDate ();
				case "IFCDATETIME": return new IfcDateTime ();
				case "IFCDAYINMONTHNUMBER": return new IfcDayInMonthNumber ();
				case "IFCDAYINWEEKNUMBER": return new IfcDayInWeekNumber ();
				case "IFCDESCRIPTIVEMEASURE": return new IfcDescriptiveMeasure ();
				case "IFCDIMENSIONCOUNT": return new IfcDimensionCount ();
				case "IFCDOSEEQUIVALENTMEASURE": return new IfcDoseEquivalentMeasure ();
				case "IFCDURATION": return new IfcDuration ();
				case "IFCDYNAMICVISCOSITYMEASURE": return new IfcDynamicViscosityMeasure ();
				case "IFCELECTRICCAPACITANCEMEASURE": return new IfcElectricCapacitanceMeasure ();
				case "IFCELECTRICCHARGEMEASURE": return new IfcElectricChargeMeasure ();
				case "IFCELECTRICCONDUCTANCEMEASURE": return new IfcElectricConductanceMeasure ();
				case "IFCELECTRICCURRENTMEASURE": return new IfcElectricCurrentMeasure ();
				case "IFCELECTRICRESISTANCEMEASURE": return new IfcElectricResistanceMeasure ();
				case "IFCELECTRICVOLTAGEMEASURE": return new IfcElectricVoltageMeasure ();
				case "IFCENERGYMEASURE": return new IfcEnergyMeasure ();
				case "IFCFONTSTYLE": return new IfcFontStyle ();
				case "IFCFONTVARIANT": return new IfcFontVariant ();
				case "IFCFONTWEIGHT": return new IfcFontWeight ();
				case "IFCFORCEMEASURE": return new IfcForceMeasure ();
				case "IFCFREQUENCYMEASURE": return new IfcFrequencyMeasure ();
				case "IFCGLOBALLYUNIQUEID": return new IfcGloballyUniqueId ();
				case "IFCHEATFLUXDENSITYMEASURE": return new IfcHeatFluxDensityMeasure ();
				case "IFCHEATINGVALUEMEASURE": return new IfcHeatingValueMeasure ();
				case "IFCIDENTIFIER": return new IfcIdentifier ();
				case "IFCILLUMINANCEMEASURE": return new IfcIlluminanceMeasure ();
				case "IFCINDUCTANCEMEASURE": return new IfcInductanceMeasure ();
				case "IFCINTEGER": return new IfcInteger ();
				case "IFCINTEGERCOUNTRATEMEASURE": return new IfcIntegerCountRateMeasure ();
				case "IFCIONCONCENTRATIONMEASURE": return new IfcIonConcentrationMeasure ();
				case "IFCISOTHERMALMOISTURECAPACITYMEASURE": return new IfcIsothermalMoistureCapacityMeasure ();
				case "IFCKINEMATICVISCOSITYMEASURE": return new IfcKinematicViscosityMeasure ();
				case "IFCLABEL": return new IfcLabel ();
				case "IFCLANGUAGEID": return new IfcLanguageId ();
				case "IFCLENGTHMEASURE": return new IfcLengthMeasure ();
				case "IFCLINEINDEX": return new IfcLineIndex ();
				case "IFCLINEARFORCEMEASURE": return new IfcLinearForceMeasure ();
				case "IFCLINEARMOMENTMEASURE": return new IfcLinearMomentMeasure ();
				case "IFCLINEARSTIFFNESSMEASURE": return new IfcLinearStiffnessMeasure ();
				case "IFCLINEARVELOCITYMEASURE": return new IfcLinearVelocityMeasure ();
				case "IFCLOGICAL": return new IfcLogical ();
				case "IFCLUMINOUSFLUXMEASURE": return new IfcLuminousFluxMeasure ();
				case "IFCLUMINOUSINTENSITYDISTRIBUTIONMEASURE": return new IfcLuminousIntensityDistributionMeasure ();
				case "IFCLUMINOUSINTENSITYMEASURE": return new IfcLuminousIntensityMeasure ();
				case "IFCMAGNETICFLUXDENSITYMEASURE": return new IfcMagneticFluxDensityMeasure ();
				case "IFCMAGNETICFLUXMEASURE": return new IfcMagneticFluxMeasure ();
				case "IFCMASSDENSITYMEASURE": return new IfcMassDensityMeasure ();
				case "IFCMASSFLOWRATEMEASURE": return new IfcMassFlowRateMeasure ();
				case "IFCMASSMEASURE": return new IfcMassMeasure ();
				case "IFCMASSPERLENGTHMEASURE": return new IfcMassPerLengthMeasure ();
				case "IFCMODULUSOFELASTICITYMEASURE": return new IfcModulusOfElasticityMeasure ();
				case "IFCMODULUSOFLINEARSUBGRADEREACTIONMEASURE": return new IfcModulusOfLinearSubgradeReactionMeasure ();
				case "IFCMODULUSOFROTATIONALSUBGRADEREACTIONMEASURE": return new IfcModulusOfRotationalSubgradeReactionMeasure ();
				case "IFCMODULUSOFSUBGRADEREACTIONMEASURE": return new IfcModulusOfSubgradeReactionMeasure ();
				case "IFCMOISTUREDIFFUSIVITYMEASURE": return new IfcMoistureDiffusivityMeasure ();
				case "IFCMOLECULARWEIGHTMEASURE": return new IfcMolecularWeightMeasure ();
				case "IFCMOMENTOFINERTIAMEASURE": return new IfcMomentOfInertiaMeasure ();
				case "IFCMONETARYMEASURE": return new IfcMonetaryMeasure ();
				case "IFCMONTHINYEARNUMBER": return new IfcMonthInYearNumber ();
				case "IFCNONNEGATIVELENGTHMEASURE": return new IfcNonNegativeLengthMeasure ();
				case "IFCNORMALISEDRATIOMEASURE": return new IfcNormalisedRatioMeasure ();
				case "IFCNUMERICMEASURE": return new IfcNumericMeasure ();
				case "IFCPHMEASURE": return new IfcPHMeasure ();
				case "IFCPARAMETERVALUE": return new IfcParameterValue ();
				case "IFCPLANARFORCEMEASURE": return new IfcPlanarForceMeasure ();
				case "IFCPLANEANGLEMEASURE": return new IfcPlaneAngleMeasure ();
				case "IFCPOSITIVEINTEGER": return new IfcPositiveInteger ();
				case "IFCPOSITIVELENGTHMEASURE": return new IfcPositiveLengthMeasure ();
				case "IFCPOSITIVEPLANEANGLEMEASURE": return new IfcPositivePlaneAngleMeasure ();
				case "IFCPOSITIVERATIOMEASURE": return new IfcPositiveRatioMeasure ();
				case "IFCPOWERMEASURE": return new IfcPowerMeasure ();
				case "IFCPRESENTABLETEXT": return new IfcPresentableText ();
				case "IFCPRESSUREMEASURE": return new IfcPressureMeasure ();
				case "IFCPROPERTYSETDEFINITIONSET": return new IfcPropertySetDefinitionSet ();
				case "IFCRADIOACTIVITYMEASURE": return new IfcRadioActivityMeasure ();
				case "IFCRATIOMEASURE": return new IfcRatioMeasure ();
				case "IFCREAL": return new IfcReal ();
				case "IFCROTATIONALFREQUENCYMEASURE": return new IfcRotationalFrequencyMeasure ();
				case "IFCROTATIONALMASSMEASURE": return new IfcRotationalMassMeasure ();
				case "IFCROTATIONALSTIFFNESSMEASURE": return new IfcRotationalStiffnessMeasure ();
				case "IFCSECTIONMODULUSMEASURE": return new IfcSectionModulusMeasure ();
				case "IFCSECTIONALAREAINTEGRALMEASURE": return new IfcSectionalAreaIntegralMeasure ();
				case "IFCSHEARMODULUSMEASURE": return new IfcShearModulusMeasure ();
				case "IFCSOLIDANGLEMEASURE": return new IfcSolidAngleMeasure ();
				case "IFCSOUNDPOWERLEVELMEASURE": return new IfcSoundPowerLevelMeasure ();
				case "IFCSOUNDPOWERMEASURE": return new IfcSoundPowerMeasure ();
				case "IFCSOUNDPRESSURELEVELMEASURE": return new IfcSoundPressureLevelMeasure ();
				case "IFCSOUNDPRESSUREMEASURE": return new IfcSoundPressureMeasure ();
				case "IFCSPECIFICHEATCAPACITYMEASURE": return new IfcSpecificHeatCapacityMeasure ();
				case "IFCSPECULAREXPONENT": return new IfcSpecularExponent ();
				case "IFCSPECULARROUGHNESS": return new IfcSpecularRoughness ();
				case "IFCTEMPERATUREGRADIENTMEASURE": return new IfcTemperatureGradientMeasure ();
				case "IFCTEMPERATURERATEOFCHANGEMEASURE": return new IfcTemperatureRateOfChangeMeasure ();
				case "IFCTEXT": return new IfcText ();
				case "IFCTEXTALIGNMENT": return new IfcTextAlignment ();
				case "IFCTEXTDECORATION": return new IfcTextDecoration ();
				case "IFCTEXTFONTNAME": return new IfcTextFontName ();
				case "IFCTEXTTRANSFORMATION": return new IfcTextTransformation ();
				case "IFCTHERMALADMITTANCEMEASURE": return new IfcThermalAdmittanceMeasure ();
				case "IFCTHERMALCONDUCTIVITYMEASURE": return new IfcThermalConductivityMeasure ();
				case "IFCTHERMALEXPANSIONCOEFFICIENTMEASURE": return new IfcThermalExpansionCoefficientMeasure ();
				case "IFCTHERMALRESISTANCEMEASURE": return new IfcThermalResistanceMeasure ();
				case "IFCTHERMALTRANSMITTANCEMEASURE": return new IfcThermalTransmittanceMeasure ();
				case "IFCTHERMODYNAMICTEMPERATUREMEASURE": return new IfcThermodynamicTemperatureMeasure ();
				case "IFCTIME": return new IfcTime ();
				case "IFCTIMEMEASURE": return new IfcTimeMeasure ();
				case "IFCTIMESTAMP": return new IfcTimeStamp ();
				case "IFCTORQUEMEASURE": return new IfcTorqueMeasure ();
				case "IFCURIREFERENCE": return new IfcURIReference ();
				case "IFCVAPORPERMEABILITYMEASURE": return new IfcVaporPermeabilityMeasure ();
				case "IFCVOLUMEMEASURE": return new IfcVolumeMeasure ();
				case "IFCVOLUMETRICFLOWRATEMEASURE": return new IfcVolumetricFlowRateMeasure ();
				case "IFCWARPINGCONSTANTMEASURE": return new IfcWarpingConstantMeasure ();
				case "IFCWARPINGMOMENTMEASURE": return new IfcWarpingMomentMeasure ();
				case "IFCNULLSTYLE": return new IfcNullStyle ();
				default:
					return null;
			}
		}

		private static readonly List<string> _schemasIds = new List<string> { "IFC4" };
		public IEnumerable<string> SchemasIds { get { return _schemasIds; } }

		/// <summary>
        /// Gets the Ifc Schema version of the model if this is IFC schema
        /// </summary>
		public XbimSchemaVersion SchemaVersion { 
			get
			{
				return XbimSchemaVersion.Ifc4;
			}
		}

	}
}
